diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-12-17 09:28:44 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-17 09:28:44 +0800 |
commit | 2d8bbe468e796137ae1b5f504b3d73758a8c391c (patch) | |
tree | d89eb7439ff0632dfe136a4da55c494f3ba0039b /src/nvim/hashtab.c | |
parent | 4d860a537076d7eddfb29372ecbdacf1eb5b7d3b (diff) | |
parent | b969844398bc8d6021f8da286819c22aa73e1535 (diff) | |
download | rneovim-2d8bbe468e796137ae1b5f504b3d73758a8c391c.tar.gz rneovim-2d8bbe468e796137ae1b5f504b3d73758a8c391c.tar.bz2 rneovim-2d8bbe468e796137ae1b5f504b3d73758a8c391c.zip |
Merge pull request #21450 from zeertzjq/vim-8.2.1210
vim-patch:8.2.{1208,1209,1210}: using ht_used when looping through a hashtab is less reliable
Diffstat (limited to 'src/nvim/hashtab.c')
-rw-r--r-- | src/nvim/hashtab.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/nvim/hashtab.c b/src/nvim/hashtab.c index 31dc6f5bd4..fdbfdd7d77 100644 --- a/src/nvim/hashtab.c +++ b/src/nvim/hashtab.c @@ -223,6 +223,7 @@ int hash_add(hashtab_T *ht, char *key) void hash_add_item(hashtab_T *ht, hashitem_T *hi, char_u *key, hash_T hash) { ht->ht_used++; + ht->ht_changed++; if (hi->hi_key == NULL) { ht->ht_filled++; } @@ -242,6 +243,7 @@ void hash_add_item(hashtab_T *ht, hashitem_T *hi, char_u *key, hash_T hash) void hash_remove(hashtab_T *ht, hashitem_T *hi) { ht->ht_used--; + ht->ht_changed++; hi->hi_key = HI_KEY_REMOVED; hash_may_resize(ht, 0); } @@ -384,6 +386,7 @@ static void hash_may_resize(hashtab_T *ht, size_t minitems) ht->ht_array = newarray; ht->ht_mask = newmask; ht->ht_filled = ht->ht_used; + ht->ht_changed++; } #define HASH_CYCLE_BODY(hash, p) \ |