fix(channel): fix channels opened by nvim_open_term() never being freed

This commit is contained in:
zeertzjq
2021-11-11 09:34:23 +08:00
parent 3b89fee246
commit a502a7a731
2 changed files with 13 additions and 8 deletions

View File

@@ -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);
}