diff options
author | ZyX <kp-pav@yandex.ru> | 2015-07-02 20:15:41 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2015-10-08 21:59:51 +0300 |
commit | 0fdaab995ed95250b13058a717d5bc562e1834c8 (patch) | |
tree | 01299fb2e00ef3f06079434e3b361981739caae6 | |
parent | c71dca0cbd5043f449a74e98eca8906e5d85451e (diff) | |
download | rneovim-0fdaab995ed95250b13058a717d5bc562e1834c8.tar.gz rneovim-0fdaab995ed95250b13058a717d5bc562e1834c8.tar.bz2 rneovim-0fdaab995ed95250b13058a717d5bc562e1834c8.zip |
mark: Fix valgrind error in mark.c
Caused by using memcpy for assigning one structure to another.
-rw-r--r-- | src/nvim/mark.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/nvim/mark.c b/src/nvim/mark.c index ce44149ffa..6ac4b1de9c 100644 --- a/src/nvim/mark.c +++ b/src/nvim/mark.c @@ -1117,10 +1117,17 @@ static void cleanup_jumplist(void) && curwin->w_jumplist[i].fmark.mark.lnum == curwin->w_jumplist[from].fmark.mark.lnum) break; - if (i >= curwin->w_jumplistlen) /* no duplicate */ - curwin->w_jumplist[to++] = curwin->w_jumplist[from]; - else + if (i >= curwin->w_jumplistlen) { // no duplicate + if (to != from) { + // Not using curwin->w_jumplist[to++] = curwin->w_jumplist[from] because + // this way valgrind complains about overlapping source and destination + // in memcpy() call. (clang-3.6.0, debug build with -DEXITFREE). + curwin->w_jumplist[to] = curwin->w_jumplist[from]; + } + to++; + } else { xfree(curwin->w_jumplist[from].fname); + } } if (curwin->w_jumplistidx == curwin->w_jumplistlen) curwin->w_jumplistidx = to; |