• Paul Eggert's avatar
    Shrink pseudovectors a bit · 2c8520e1
    Paul Eggert authored
    sizeof (struct Lisp_Marker) was 32 on x86, where 24 would do.
    Problem noted by Stefan Monnier in:
    https://lists.gnu.org/r/emacs-devel/2018-09/msg00165.html
    * src/bignum.h (struct Lisp_Bignum):
    * src/frame.h (struct frame):
    * src/lisp.h (struct Lisp_Vector, struct Lisp_Bool_Vector)
    (struct Lisp_Char_Table, struct Lisp_Hash_Table)
    (struct Lisp_Marker, struct Lisp_Overlay)
    (struct Lisp_Misc_Ptr, struct Lisp_User_Ptr)
    (struct Lisp_Finalizer, struct Lisp_Float)
    (struct Lisp_Module_Function):
    * src/process.h (struct Lisp_Process):
    * src/termhooks.h (struct terminal):
    * src/thread.h (struct thread_state, struct Lisp_Mutex)
    (struct Lisp_CondVar):
    * src/window.c (struct save_window_data):
    * src/window.h (struct window):
    * src/xterm.h (struct scroll_bar):
    * src/xwidget.h (struct xwidget, struct xwidget_view):
    Add GCALIGNED_STRUCT attribute.
    * src/lisp.h (GCALIGNED_UNION_MEMBER): Renamed from GCALIGNED_UNION.
    All uses changed.
    (GCALIGNED_STRUCT_MEMBER, GCALIGNED_STRUCT, GCALIGNED): New macros.
    All uses of open-coded GCALIGNED changed to use GCALIGNED.
    (union vectorlike_header): No longer GC-aligned.
    (PSEUDOVECSIZE): Yield 0 for pseudovectors without Lisp
    objects that place a member before where the first Lisp object
    member would be.
    2c8520e1
termhooks.h 28.2 KB