diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-05-28 14:16:10 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-05-28 14:16:10 +0200 |
commit | 28ae5773422c2cf61aaf8d9d2b9fae70642d6a33 (patch) | |
tree | 28bed9f0546c864283e7c511493a5afdff22797b /src | |
parent | af6c12c27bcb553b2fb2c8a9dcfde626fb3670fe (diff) | |
download | vim-git-28ae5773422c2cf61aaf8d9d2b9fae70642d6a33.tar.gz |
patch 7.4.1853v7.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.
Diffstat (limited to 'src')
-rw-r--r-- | src/channel.c | 3 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/channel.c b/src/channel.c index f4dc323b6..94681ee89 100644 --- a/src/channel.c +++ b/src/channel.c @@ -2566,7 +2566,6 @@ channel_close(channel_T *channel, int invoke_close_cb) 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 @@ channel_close(channel_T *channel, int invoke_close_cb) partial_unref(channel->ch_close_partial); channel->ch_close_partial = NULL; + --channel->ch_refcount; + if (channel_need_redraw) { channel_need_redraw = FALSE; diff --git a/src/version.c b/src/version.c index b50b19eb6..83221e23b 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1853, +/**/ 1852, /**/ 1851, |