0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

patch 8.0.1590: padding in list type wastes memory

Problem:    Padding in list type wastes memory.
Solution:   Reorder struct members to optimize padding. (Dominique Pelle,
            closes #2704)
This commit is contained in:
Bram Moolenaar
2018-03-08 21:46:43 +01:00
parent d7db27bafd
commit 1a84024037
2 changed files with 8 additions and 5 deletions

View File

@@ -1260,21 +1260,22 @@ struct listwatch_S
/*
* Structure to hold info about a list.
* Order of members is optimized to reduce padding.
*/
struct listvar_S
{
listitem_T *lv_first; /* first item, NULL if none */
listitem_T *lv_last; /* last item, NULL if none */
int lv_refcount; /* reference count */
int lv_len; /* number of items */
listwatch_T *lv_watch; /* first watcher, NULL if none */
int lv_idx; /* cached index of an item */
listitem_T *lv_idx_item; /* when not NULL item at index "lv_idx" */
int lv_copyID; /* ID used by deepcopy() */
list_T *lv_copylist; /* copied list used by deepcopy() */
char lv_lock; /* zero, VAR_LOCKED, VAR_FIXED */
list_T *lv_used_next; /* next list in used lists list */
list_T *lv_used_prev; /* previous list in used lists list */
int lv_refcount; /* reference count */
int lv_len; /* number of items */
int lv_idx; /* cached index of an item */
int lv_copyID; /* ID used by deepcopy() */
char lv_lock; /* zero, VAR_LOCKED, VAR_FIXED */
};
/*