diff options
author | bfredl <bjorn.linse@gmail.com> | 2023-08-29 17:34:07 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-29 17:34:07 +0200 |
commit | 97cfee39ee7bf333352975f917e660965609e8cc (patch) | |
tree | 5a3907044a4f39231c6593169f6c9c3aa28f22de /test | |
parent | ae7ab9015999ba417642a5e0c785709f104d75cf (diff) | |
parent | 50a03c0e9975925e3198a2741c5b9fc0ad727e84 (diff) | |
download | rneovim-97cfee39ee7bf333352975f917e660965609e8cc.tar.gz rneovim-97cfee39ee7bf333352975f917e660965609e8cc.tar.bz2 rneovim-97cfee39ee7bf333352975f917e660965609e8cc.zip |
Merge pull request #24926 from bfredl/tsfree
fix(treesitter): fix another TSNode:tree() double free
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/treesitter/node_spec.lua | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/functional/treesitter/node_spec.lua b/test/functional/treesitter/node_spec.lua index 72508ba958..eef75d0e91 100644 --- a/test/functional/treesitter/node_spec.lua +++ b/test/functional/treesitter/node_spec.lua @@ -26,6 +26,20 @@ describe('treesitter node API', function() assert_alive() end) + it('double free tree 2', function() + exec_lua([[ + parser = vim.treesitter.get_parser(0, "c") + local x = parser:parse()[1]:root():tree() + vim.api.nvim_buf_set_text(0, 0,0, 0,0, {'y'}) + parser:parse() + vim.api.nvim_buf_set_text(0, 0,0, 0,1, {'z'}) + parser:parse() + collectgarbage() + x:root() + ]]) + assert_alive() + end) + it('can move between siblings', function() insert([[ int main(int x, int y, int z) { |