# HG changeset patch # User Christian Brabandt # Date 1456949705 -3600 # Node ID e0d576743e4f1772c72d2b5dd9fce4dd38ae1270 # Parent 306724b3a93e4ba69c0e0aae0404a32e16b3516f commit https://github.com/vim/vim/commit/289a90551d185c307abd4cfe6baadea8990d956b Author: Bram Moolenaar Date: Wed Mar 2 21:09:32 2016 +0100 patch 7.4.1470 Problem: Coverity reports missing restore. Solution: Move json_encode() call up. diff --git a/src/channel.c b/src/channel.c --- a/src/channel.c +++ b/src/channel.c @@ -1551,22 +1551,22 @@ may_invoke_callback(channel_T *channel, { if (buffer != NULL) { - buf_T *save_curbuf = curbuf; - linenr_T lnum = buffer->b_ml.ml_line_count; - - /* Append to the buffer */ - ch_logn(channel, "appending line %d to buffer", (int)lnum + 1); - - curbuf = buffer; - u_sync(TRUE); - /* ignore undo failure, undo is not very useful here */ - ignored = u_save(lnum, lnum + 1); - if (msg == NULL) /* JSON or JS mode: re-encode the message. */ msg = json_encode(listtv, ch_mode); if (msg != NULL) { + buf_T *save_curbuf = curbuf; + linenr_T lnum = buffer->b_ml.ml_line_count; + + /* Append to the buffer */ + ch_logn(channel, "appending line %d to buffer", (int)lnum + 1); + + curbuf = buffer; + u_sync(TRUE); + /* ignore undo failure, undo is not very useful here */ + ignored = u_save(lnum, lnum + 1); + ml_append(lnum, msg, 0, FALSE); appended_lines_mark(lnum, 1L); curbuf = save_curbuf; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -744,6 +744,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1470, +/**/ 1469, /**/ 1468,