diff options
author | bfredl <bjorn.linse@gmail.com> | 2023-01-09 14:52:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-09 14:52:02 +0100 |
commit | 9cd7edc6ad884f59b0be9dda3523ff88f4dca705 (patch) | |
tree | 8e03637e2d23e040ba97455683c597a8a904b9e1 | |
parent | 149209400383c673fdb4fdd1c9a7639139f17936 (diff) | |
parent | bb7033a0338e9133765f9b2e1e6dc096847d17e3 (diff) | |
download | rneovim-9cd7edc6ad884f59b0be9dda3523ff88f4dca705.tar.gz rneovim-9cd7edc6ad884f59b0be9dda3523ff88f4dca705.tar.bz2 rneovim-9cd7edc6ad884f59b0be9dda3523ff88f4dca705.zip |
Merge pull request #21704 from bfredl/nofree
fix(rpc): don't free args on error in rpc_send_event
-rw-r--r-- | src/nvim/eval/funcs.c | 4 | ||||
-rw-r--r-- | src/nvim/msgpack_rpc/channel.c | 1 |
2 files changed, 2 insertions, 3 deletions
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index d21d92d844..b79a69bc6e 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -6325,12 +6325,12 @@ static void f_rpcnotify(typval_T *argvars, typval_T *rettv, EvalFuncData fptr) bool ok = rpc_send_event((uint64_t)argvars[0].vval.v_number, tv_get_string(&argvars[1]), args); + api_free_array(args); + if (!ok) { semsg(_(e_invarg2), "Channel doesn't exist"); return; } - - api_free_array(args); rettv->vval.v_number = 1; } diff --git a/src/nvim/msgpack_rpc/channel.c b/src/nvim/msgpack_rpc/channel.c index 5b8e330e15..0c23a7798c 100644 --- a/src/nvim/msgpack_rpc/channel.c +++ b/src/nvim/msgpack_rpc/channel.c @@ -100,7 +100,6 @@ bool rpc_send_event(uint64_t id, const char *name, Array args) Channel *channel = NULL; if (id && (!(channel = find_rpc_channel(id)))) { - api_free_array(args); return false; } |