diff options
author | zeertzjq <zeertzjq@outlook.com> | 2021-11-11 09:34:23 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2021-11-11 09:34:23 +0800 |
commit | a502a7a7311657564065c9d2cd1a64292550722c (patch) | |
tree | f5cf07c02a3e100a655d4ed7043e28657990b297 /src/nvim/api/vim.c | |
parent | 3b89fee24632cfddbff5714a509c1c3b72a235c5 (diff) | |
download | rneovim-a502a7a7311657564065c9d2cd1a64292550722c.tar.gz rneovim-a502a7a7311657564065c9d2cd1a64292550722c.tar.bz2 rneovim-a502a7a7311657564065c9d2cd1a64292550722c.zip |
fix(channel): fix channels opened by nvim_open_term() never being freed
Diffstat (limited to 'src/nvim/api/vim.c')
-rw-r--r-- | src/nvim/api/vim.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 2fbafb9889..c1374ff00e 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -1006,7 +1006,6 @@ Integer nvim_open_term(Buffer buffer, DictionaryOf(LuaRef) opts, Error *err) Terminal *term = terminal_open(buf, topts); terminal_check_size(term); chan->term = term; - channel_incref(chan); return (Integer)chan->id; } @@ -1036,6 +1035,8 @@ static void term_close(void *data) Channel *chan = data; terminal_destroy(chan->term); chan->term = NULL; + api_free_luaref(chan->stream.internal.cb); + chan->stream.internal.cb = LUA_NOREF; channel_decref(chan); } |