From 59012a18e190532f673e72899b3e005e9792d8f8 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 27 Dec 2022 18:49:24 +0800 Subject: [PATCH] vim-patch:9.0.1096: reallocating hashtab when the size didn't change Problem: Reallocating hashtab when the size didn't change. Solution: Bail out when the hashtab is already the desired size. https://github.com/vim/vim/commit/71d53e7c579b8af44083142ea3894b455947ad81 Co-authored-by: Bram Moolenaar --- src/nvim/hashtab.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/nvim/hashtab.c b/src/nvim/hashtab.c index fdbfdd7d77..448e78ab07 100644 --- a/src/nvim/hashtab.c +++ b/src/nvim/hashtab.c @@ -334,6 +334,11 @@ static void hash_may_resize(hashtab_T *ht, size_t minitems) assert(newsize != 0); } + // bail out if the hashtab is already at the desired size + if (newsize == ht->ht_mask + 1) { + return; + } + bool newarray_is_small = newsize == HT_INIT_SIZE; bool keep_smallarray = newarray_is_small && ht->ht_array == ht->ht_smallarray;