aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/hashtab.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-12-17 09:28:44 +0800
committerGitHub <noreply@github.com>2022-12-17 09:28:44 +0800
commit2d8bbe468e796137ae1b5f504b3d73758a8c391c (patch)
treed89eb7439ff0632dfe136a4da55c494f3ba0039b /src/nvim/hashtab.c
parent4d860a537076d7eddfb29372ecbdacf1eb5b7d3b (diff)
parentb969844398bc8d6021f8da286819c22aa73e1535 (diff)
downloadrneovim-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.c3
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) \