diff options
author | ZyX <kp-pav@yandex.ru> | 2018-04-01 20:05:19 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2018-04-01 20:05:19 +0300 |
commit | 200898546ee81cc56b614274901cf392f1d462bd (patch) | |
tree | 35b6deafc7f2005219e1d4c456e351036ab8807c | |
parent | 1ac1f520f02afc934523ce76a99a3d17d0d6a670 (diff) | |
download | rneovim-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.c | 4 |
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 |