patch 7.4.1853
Problem: Crash when job and channel are in the same dict while using
partials. (Luc Hermitte)
Solution: Do not decrement the channel reference count too early.
diff --git a/src/channel.c b/src/channel.c
index f4dc323..94681ee 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -2566,7 +2566,6 @@
clear_tv(&rettv);
channel_need_redraw = TRUE;
}
- --channel->ch_refcount;
/* the callback is only called once */
vim_free(channel->ch_close_cb);
@@ -2574,6 +2573,8 @@
partial_unref(channel->ch_close_partial);
channel->ch_close_partial = NULL;
+ --channel->ch_refcount;
+
if (channel_need_redraw)
{
channel_need_redraw = FALSE;