aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2018-04-01 20:05:19 +0300
committerZyX <kp-pav@yandex.ru>2018-04-01 20:05:19 +0300
commit200898546ee81cc56b614274901cf392f1d462bd (patch)
tree35b6deafc7f2005219e1d4c456e351036ab8807c
parent1ac1f520f02afc934523ce76a99a3d17d0d6a670 (diff)
downloadrneovim-200898546ee81cc56b614274901cf392f1d462bd.tar.gz
rneovim-200898546ee81cc56b614274901cf392f1d462bd.tar.bz2
rneovim-200898546ee81cc56b614274901cf392f1d462bd.zip
shada: When storing numeric marks reset the numbers
Attempt to fix observed crash. Crash currently not reproduced.
-rw-r--r--src/nvim/shada.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/nvim/shada.c b/src/nvim/shada.c
index f726f09fad..81261a183d 100644
--- a/src/nvim/shada.c
+++ b/src/nvim/shada.c
@@ -2431,14 +2431,14 @@ static inline void replace_numbered_mark(WriteMergerState *const wms,
}
for (size_t i = idx; i < ARRAY_SIZE(wms->numbered_marks) - 1; i++) {
if (wms->numbered_marks[i].data.type == kSDItemGlobalMark) {
- wms->numbered_marks[i].data.data.filemark.name++;
- assert(ascii_isdigit(wms->numbered_marks[i].data.data.filemark.name));
+ wms->numbered_marks[i].data.data.filemark.name = '0' + (char)i;
}
}
memmove(wms->numbered_marks + idx + 1, wms->numbered_marks + idx,
sizeof(wms->numbered_marks[0])
* (ARRAY_SIZE(wms->numbered_marks) - 1 - idx));
wms->numbered_marks[idx] = entry;
+ wms->numbered_marks[idx].data.data.filemark.name = '0' + (char)idx;
}
/// Write ShaDa file