changeset 25533:df39041f13ed v8.2.3303

patch 8.2.3303: some structures could be smaller Commit: https://github.com/vim/vim/commit/3276f5846f7ad61f55175959ac21c1b4cf595352 Author: Dominique Pelle <dominique.pelle@gmail.com> Date: Sat Aug 7 12:44:41 2021 +0200 patch 8.2.3303: some structures could be smaller Problem: Some structures could be smaller. Solution: Rearrange members to reduce size. (Dominique Pell?, closes https://github.com/vim/vim/issues/8725)
author Bram Moolenaar <Bram@vim.org>
date Sat, 07 Aug 2021 12:45:05 +0200
parents 859e308bbd2f
children 1b239f0231d3
files src/structs.h src/version.c src/vim9.h src/vim9execute.c
diffstat 4 files changed, 15 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/structs.h
+++ b/src/structs.h
@@ -332,8 +332,8 @@ struct wininfo_S
     wininfo_T	*wi_prev;	// previous entry or NULL for first entry
     win_T	*wi_win;	// pointer to window that did set wi_fpos
     pos_T	wi_fpos;	// last cursor position in the file
+    winopt_T	wi_opt;		// local window options
     int		wi_optset;	// TRUE when wi_opt has useful values
-    winopt_T	wi_opt;		// local window options
 #ifdef FEAT_FOLDING
     int		wi_fold_manual;	// copy of w_fold_manual
     garray_T	wi_folds;	// clone of w_folds
@@ -1238,8 +1238,8 @@ struct mapblock
     char	m_silent;	// <silent> used, don't echo commands
     char	m_nowait;	// <nowait> used
 #ifdef FEAT_EVAL
+    char	m_expr;		// <expr> used, m_str is an expression
     sctx_T	m_script_ctx;	// SCTX where map was defined
-    char	m_expr;		// <expr> used, m_str is an expression
 #endif
 };
 
@@ -2017,12 +2017,12 @@ struct outer_S {
 struct partial_S
 {
     int		pt_refcount;	// reference count
+    int		pt_auto;	// when TRUE the partial was created for using
+				// dict.member in handle_subscript()
     char_u	*pt_name;	// function name; when NULL use
 				// pt_func->uf_name
     ufunc_T	*pt_func;	// function pointer; when NULL lookup function
 				// with pt_name
-    int		pt_auto;	// when TRUE the partial was created for using
-				// dict.member in handle_subscript()
 
     // For a compiled closure: the arguments and local variables scope
     outer_T	pt_outer;
@@ -2030,11 +2030,11 @@ struct partial_S
     funcstack_T	*pt_funcstack;	// copy of stack, used after context
 				// function returns
 
+    typval_T	*pt_argv;	// arguments in allocated array
     int		pt_argc;	// number of arguments
-    typval_T	*pt_argv;	// arguments in allocated array
-
+
+    int		pt_copyID;	// funcstack may contain pointer to partial
     dict_T	*pt_dict;	// dict for "self"
-    int		pt_copyID;	// funcstack may contain pointer to partial
 };
 
 typedef struct AutoPatCmd_S AutoPatCmd;
@@ -2103,9 +2103,9 @@ struct jobvar_S
     PROCESS_INFORMATION	jv_proc_info;
     HANDLE		jv_job_object;
 #endif
+    jobstatus_T	jv_status;
     char_u	*jv_tty_in;	// controlling tty input, allocated
     char_u	*jv_tty_out;	// controlling tty output, allocated
-    jobstatus_T	jv_status;
     char_u	*jv_stoponexit;	// allocated
 #ifdef UNIX
     char_u	*jv_termsig;	// allocated
@@ -3925,8 +3925,8 @@ struct VimMenu
     char_u	*en_dname;	    // "dname" untranslated, NULL when "dname"
 				    // was not translated
 #endif
+    char_u	*actext;	    // accelerator text (after TAB)
     int		mnemonic;	    // mnemonic key (after '&')
-    char_u	*actext;	    // accelerator text (after TAB)
     int		priority;	    // Menu order priority
 #ifdef FEAT_GUI
     void	(*cb)(vimmenu_T *); // Call-back function
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3303,
+/**/
     3302,
 /**/
     3301,
--- a/src/vim9.h
+++ b/src/vim9.h
@@ -456,9 +456,9 @@ struct dfunc_S {
     int		df_refcount;	    // how many ufunc_T point to this dfunc_T
     int		df_idx;		    // index in def_functions
     int		df_deleted;	    // if TRUE function was deleted
-    char_u	*df_name;	    // name used for error messages
     int		df_script_seq;	    // Value of sctx_T sc_seq when the function
 				    // was compiled.
+    char_u	*df_name;	    // name used for error messages
 
     garray_T	df_def_args_isn;    // default argument instructions
     garray_T	df_var_names;	    // names of local vars
@@ -466,12 +466,12 @@ struct dfunc_S {
     // After compiling "df_instr" and/or "df_instr_prof" is not NULL.
     isn_T	*df_instr;	    // function body to be executed
     int		df_instr_count;	    // size of "df_instr"
+    int		df_instr_debug_count; // size of "df_instr_debug"
+    isn_T	*df_instr_debug;      // like "df_instr" with debugging
 #ifdef FEAT_PROFILE
     isn_T	*df_instr_prof;	     // like "df_instr" with profiling
     int		df_instr_prof_count; // size of "df_instr_prof"
 #endif
-    isn_T	*df_instr_debug;      // like "df_instr" with debugging
-    int		df_instr_debug_count; // size of "df_instr_debug"
 
     int		df_varcount;	    // number of local variables
     int		df_has_closure;	    // one if a closure was created
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -85,8 +85,8 @@ struct ectx_S {
 
     garray_T	ec_trystack;	// stack of trycmd_T values
 
+    isn_T	*ec_instr;	// array with instructions
     int		ec_dfunc_idx;	// current function index
-    isn_T	*ec_instr;	// array with instructions
     int		ec_iidx;	// index in ec_instr: instruction to execute
 
     garray_T	ec_funcrefs;	// partials that might be a closure