diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-02-16 11:00:48 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2023-02-16 11:50:28 +0800 |
commit | 0cbbe27e93e87a5336673e0529b011313c51a123 (patch) | |
tree | 1a5a45358dc499a7b620c0b6b0887aafd98c8f3f /src/nvim/eval.c | |
parent | e619fb1660595f9e6a0afad8d9a91e37a94f95a3 (diff) | |
download | rneovim-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.c | 4 |
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 |