Mercurial > vim
diff src/vim9compile.c @ 19191:133ef7ba4e4e v8.2.0154
patch 8.2.0154: reallocating the list of scripts is inefficient
Commit: https://github.com/vim/vim/commit/21b9e9773d64de40994f8762173bdd8befa6acf7
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 26 19:26:46 2020 +0100
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 26 Jan 2020 19:30:14 +0100 |
parents | 94eda51ba9ba |
children | 9f98957582d6 |
line wrap: on
line diff
--- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -1401,7 +1401,7 @@ get_script_item_idx(int sid, char_u *nam { hashtab_T *ht; dictitem_T *di; - scriptitem_T *si = &SCRIPT_ITEM(sid); + scriptitem_T *si = SCRIPT_ITEM(sid); int idx; // First look the name up in the hashtable. @@ -1433,7 +1433,7 @@ get_script_item_idx(int sid, char_u *nam imported_T * find_imported(char_u *name, cctx_T *cctx) { - scriptitem_T *si = &SCRIPT_ITEM(current_sctx.sc_sid); + scriptitem_T *si = SCRIPT_ITEM(current_sctx.sc_sid); int idx; if (cctx != NULL) @@ -1462,7 +1462,7 @@ find_imported(char_u *name, cctx_T *cctx static int compile_load_scriptvar(cctx_T *cctx, char_u *name) { - scriptitem_T *si = &SCRIPT_ITEM(current_sctx.sc_sid); + scriptitem_T *si = SCRIPT_ITEM(current_sctx.sc_sid); int idx = get_script_item_idx(current_sctx.sc_sid, name, FALSE); imported_T *import;