summaryrefslogtreecommitdiffstats
path: root/src/mark.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mark.c')
-rw-r--r--src/mark.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/mark.c b/src/mark.c
index 85f7b68e2f..9f6a9ccf58 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -138,28 +138,26 @@ mark_forget_file(win_T *wp, int fnum)
{
int i;
- for (i = 0; i < wp->w_jumplistlen; ++i)
+ for (i = wp->w_jumplistlen - 1; i >= 0; --i)
if (wp->w_jumplist[i].fmark.fnum == fnum)
{
vim_free(wp->w_jumplist[i].fname);
- mch_memmove(&wp->w_jumplist[i], &wp->w_jumplist[i + 1],
- (wp->w_jumplistlen - i - 1) * sizeof(xfmark_T));
if (wp->w_jumplistidx > i)
--wp->w_jumplistidx;
--wp->w_jumplistlen;
- --i;
+ mch_memmove(&wp->w_jumplist[i], &wp->w_jumplist[i + 1],
+ (wp->w_jumplistlen - i) * sizeof(wp->w_jumplist[i]));
}
- for (i = 0; i < wp->w_tagstacklen; i++)
+ for (i = wp->w_tagstacklen - 1; i >= 0; --i)
if (wp->w_tagstack[i].fmark.fnum == fnum)
{
tagstack_clear_entry(&wp->w_tagstack[i]);
- mch_memmove(&wp->w_tagstack[i], &wp->w_tagstack[i + 1],
- (wp->w_tagstacklen - i - 1) * sizeof(taggy_T));
if (wp->w_tagstackidx > i)
--wp->w_tagstackidx;
--wp->w_tagstacklen;
- --i;
+ mch_memmove(&wp->w_tagstack[i], &wp->w_tagstack[i + 1],
+ (wp->w_tagstacklen - i) * sizeof(wp->w_tagstack[i]));
}
}