mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
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.
This commit is contained in:
@@ -285,9 +285,9 @@ EXTERN int debug_backtrace_level INIT(= 0); // breakpoint backtrace level
|
||||
# ifdef FEAT_PROFILE
|
||||
EXTERN int do_profiling INIT(= PROF_NONE); // PROF_ values
|
||||
# endif
|
||||
EXTERN garray_T script_items INIT5(0, 0, sizeof(scriptitem_T), 4, NULL);
|
||||
# define SCRIPT_ITEM(id) (((scriptitem_T *)script_items.ga_data)[(id) - 1])
|
||||
# define SCRIPT_SV(id) (SCRIPT_ITEM(id).sn_vars)
|
||||
EXTERN garray_T script_items INIT5(0, 0, sizeof(scriptitem_T *), 20, NULL);
|
||||
# define SCRIPT_ITEM(id) (((scriptitem_T **)script_items.ga_data)[(id) - 1])
|
||||
# define SCRIPT_SV(id) (SCRIPT_ITEM(id)->sn_vars)
|
||||
# define SCRIPT_VARS(id) (SCRIPT_SV(id)->sv_dict.dv_hashtab)
|
||||
|
||||
# define FUNCLINE(fp, j) ((char_u **)(fp->uf_lines.ga_data))[j]
|
||||
|
Reference in New Issue
Block a user