From 51438d8e142303456bf4ba52c4b9dde4df00aa3d Mon Sep 17 00:00:00 2001 From: Thiago de Arruda Date: Fri, 29 Aug 2014 23:47:59 -0300 Subject: 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 --- src/nvim/os/channel.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'src') 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; -- cgit