aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-08-29 23:47:59 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-08-31 09:32:45 -0300
commit51438d8e142303456bf4ba52c4b9dde4df00aa3d (patch)
tree0902c6893d280b547915d733405dc3417e0142aa /src
parentdf64c0f932c8c9d4cfbec8b54aefb6c5cc7c359e (diff)
downloadrneovim-51438d8e142303456bf4ba52c4b9dde4df00aa3d.tar.gz
rneovim-51438d8e142303456bf4ba52c4b9dde4df00aa3d.tar.bz2
rneovim-51438d8e142303456bf4ba52c4b9dde4df00aa3d.zip
channel: Remove code for automatically closing in channel_send_call
This was causing a segfault(reported in #1125) because channels are already closed by `parse_msgpack` when the connection ends. Also fix the RPC stack overflow error message
Diffstat (limited to 'src')
-rw-r--r--src/nvim/os/channel.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/src/nvim/os/channel.c b/src/nvim/os/channel.c
index 39455df862..bad82bc272 100644
--- a/src/nvim/os/channel.c
+++ b/src/nvim/os/channel.c
@@ -194,8 +194,7 @@ bool channel_send_call(uint64_t id,
char buf[256];
snprintf(buf,
sizeof(buf),
- "Channel %" PRIu64 " was closed due to a high stack depth "
- "while processing a RPC call",
+ "Channel %" PRIu64 " crossed maximum stack depth",
channel->id);
*result = STRING_OBJ(cstr_to_string(buf));
msgpack_rpc_free_array(args);
@@ -223,14 +222,6 @@ bool channel_send_call(uint64_t id,
channel->enabled && // the channel is still enabled
kv_size(channel->call_stack) >= size); // the call didn't return
- if (!(kv_size(channel->call_stack)
- || channel->enabled
- || channel->rpc_call_level)) {
- // Close the channel if it has been disabled and we have not been called
- // by `parse_msgpack`(It would be unsafe to close the channel otherwise)
- close_channel(channel);
- }
-
*errored = frame.errored;
*result = frame.result;