Patch 8.0.1541
Problem:    synpat_T is taking too much memory.
Solution:   Reorder members to reduce padding. (Dominique Pelle, closes #2671)
Files:      src/syntax.c


*** ../vim-8.0.1540/src/syntax.c        2018-02-22 21:06:44.566818882 +0100
--- src/syntax.c        2018-02-24 21:35:50.310399352 +0100
***************
*** 145,174 ****
   *
   * A character offset can be given for the matched text (_m_start and _m_end)
   * and for the actually highlighted text (_h_start and _h_end).
   */
  typedef struct syn_pattern
  {
      char       sp_type;               /* see SPTYPE_ defines below */
      char       sp_syncing;            /* this item used for syncing */
      int                sp_flags;              /* see HL_ defines below */
  #ifdef FEAT_CONCEAL
      int                sp_cchar;              /* conceal substitute character 
*/
  #endif
      struct sp_syn sp_syn;             /* struct passed to in_id_list() */
-     short      sp_syn_match_id;       /* highlight group ID of pattern */
      char_u    *sp_pattern;            /* regexp to match, pattern */
      regprog_T *sp_prog;               /* regexp to match, program */
  #ifdef FEAT_PROFILE
      syn_time_T         sp_time;
  #endif
-     int                sp_ic;                 /* ignore-case flag for sp_prog 
*/
-     short      sp_off_flags;          /* see below */
-     int                sp_offsets[SPO_COUNT]; /* offsets */
-     short     *sp_cont_list;          /* cont. group IDs, if non-zero */
-     short     *sp_next_list;          /* next group IDs, if non-zero */
-     int                sp_sync_idx;           /* sync item index (syncing 
only) */
-     int                sp_line_id;            /* ID of last line where tried 
*/
-     int                sp_startcol;           /* next match in sp_line_id 
line */
  } synpat_T;
  
  /* The sp_off_flags are computed like this:
--- 145,176 ----
   *
   * A character offset can be given for the matched text (_m_start and _m_end)
   * and for the actually highlighted text (_h_start and _h_end).
+  *
+  * Note that ordering of members is optimized to reduce padding.
   */
  typedef struct syn_pattern
  {
      char       sp_type;               /* see SPTYPE_ defines below */
      char       sp_syncing;            /* this item used for syncing */
+     short      sp_syn_match_id;       /* highlight group ID of pattern */
+     short      sp_off_flags;          /* see below */
+     int                sp_offsets[SPO_COUNT]; /* offsets */
      int                sp_flags;              /* see HL_ defines below */
  #ifdef FEAT_CONCEAL
      int                sp_cchar;              /* conceal substitute character 
*/
  #endif
+     int                sp_ic;                 /* ignore-case flag for sp_prog 
*/
+     int                sp_sync_idx;           /* sync item index (syncing 
only) */
+     int                sp_line_id;            /* ID of last line where tried 
*/
+     int                sp_startcol;           /* next match in sp_line_id 
line */
+     short     *sp_cont_list;          /* cont. group IDs, if non-zero */
+     short     *sp_next_list;          /* next group IDs, if non-zero */
      struct sp_syn sp_syn;             /* struct passed to in_id_list() */
      char_u    *sp_pattern;            /* regexp to match, pattern */
      regprog_T *sp_prog;               /* regexp to match, program */
  #ifdef FEAT_PROFILE
      syn_time_T         sp_time;
  #endif
  } synpat_T;
  
  /* The sp_off_flags are computed like this:
*** ../vim-8.0.1540/src/version.c       2018-02-24 21:25:25.202496627 +0100
--- src/version.c       2018-02-24 21:35:11.586652167 +0100
***************
*** 780,781 ****
--- 780,783 ----
  {   /* Add new patch number below this line */
+ /**/
+     1541,
  /**/

-- 
Sometimes I think the surest sign that intelligent life exists elsewhere
in the universe is that none of it has tried to contact us.     (Calvin)

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui