aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-02-16 11:00:48 +0800
committerzeertzjq <zeertzjq@outlook.com>2023-02-16 11:50:28 +0800
commit0cbbe27e93e87a5336673e0529b011313c51a123 (patch)
tree1a5a45358dc499a7b620c0b6b0887aafd98c8f3f /src/nvim/eval.c
parente619fb1660595f9e6a0afad8d9a91e37a94f95a3 (diff)
downloadrneovim-0cbbe27e93e87a5336673e0529b011313c51a123.tar.gz
rneovim-0cbbe27e93e87a5336673e0529b011313c51a123.tar.bz2
rneovim-0cbbe27e93e87a5336673e0529b011313c51a123.zip
vim-patch:8.2.0154: reallocating the list of scripts is inefficient
Problem: Reallocating the list of scripts is inefficient. Solution: Instead of using a growarray of scriptitem_T, store pointers and allocate each scriptitem_T separately. Also avoids that the growarray pointers change when sourcing a new script. https://github.com/vim/vim/commit/21b9e9773d64de40994f8762173bdd8befa6acf7 Co-authored-by: Bram Moolenaar <Bram@vim.org>
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index a09bd72710..92a8ffd646 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -109,7 +109,7 @@ static hashtab_T compat_hashtab;
/// Used for checking if local variables or arguments used in a lambda.
bool *eval_lavars_used = NULL;
-#define SCRIPT_SV(id) (SCRIPT_ITEM(id).sn_vars)
+#define SCRIPT_SV(id) (SCRIPT_ITEM(id)->sn_vars)
#define SCRIPT_VARS(id) (SCRIPT_SV(id)->sv_dict.dv_hashtab)
static int echo_attr = 0; // attributes used for ":echo"
@@ -7177,7 +7177,7 @@ void new_script_vars(scid_T id)
{
scriptvar_T *sv = xcalloc(1, sizeof(scriptvar_T));
init_var_dict(&sv->sv_dict, &sv->sv_var, VAR_SCOPE);
- SCRIPT_ITEM(id).sn_vars = sv;
+ SCRIPT_ITEM(id)->sn_vars = sv;
}
/// Initialize dictionary "dict" as a scope and set variable "dict_var" to