diff src/channel.c @ 12818:60e1e4cfb21e v8.0.1286

patch 8.0.1286: occasional crash when using a channel commit https://github.com/vim/vim/commit/5fd8b78214a52b561780eb5ba000b1a3f5ba1d3d Author: Bram Moolenaar <Bram@vim.org> Date: Sat Nov 11 15:54:00 2017 +0100 patch 8.0.1286: occasional crash when using a channel Problem: Occasional crash when using a channel. (Marek) Solution: Decrement reference count later. (closes https://github.com/vim/vim/issues/2315)
author Christian Brabandt <cb@256bit.org>
date Sat, 11 Nov 2017 16:00:06 +0100
parents f28067b83dec
children c522585ce88d
line wrap: on
line diff
--- a/src/channel.c
+++ b/src/channel.c
@@ -2898,8 +2898,6 @@ channel_close(channel_T *channel, int in
 	      channel->ch_close_cb = NULL;
 	      channel->ch_close_partial = NULL;
 
-	      --channel->ch_refcount;
-
 	      if (channel_need_redraw)
 	      {
 		  channel_need_redraw = FALSE;
@@ -2910,6 +2908,8 @@ channel_close(channel_T *channel, int in
 		  /* any remaining messages are useless now */
 		  for (part = PART_SOCK; part < PART_IN; ++part)
 		      drop_messages(channel, part);
+
+	      --channel->ch_refcount;
 	}
     }