aboutsummaryrefslogtreecommitdiffstats
path: root/src/thread.h
diff options
context:
space:
mode:
authorPaul Eggert2018-09-06 19:17:14 -0700
committerPaul Eggert2018-09-06 23:56:13 -0700
commit2c8520e19c0fe72d046033e39953b7a0a87be24e (patch)
tree2ea12495ed8184e87108e17632ecd8c2ab02c8cf /src/thread.h
parentbca35315e16cb53415649e5c0ac2ec0cc1368679 (diff)
downloademacs-2c8520e19c0fe72d046033e39953b7a0a87be24e.tar.gz
emacs-2c8520e19c0fe72d046033e39953b7a0a87be24e.zip
Shrink pseudovectors a bit
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.
Diffstat (limited to 'src/thread.h')
-rw-r--r--src/thread.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/thread.h b/src/thread.h
index 8ecb00824df..28d8d864fb4 100644
--- a/src/thread.h
+++ b/src/thread.h
@@ -184,7 +184,7 @@ struct thread_state
184 184
185 /* Threads are kept on a linked list. */ 185 /* Threads are kept on a linked list. */
186 struct thread_state *next_thread; 186 struct thread_state *next_thread;
187}; 187} GCALIGNED_STRUCT;
188 188
189INLINE bool 189INLINE bool
190THREADP (Lisp_Object a) 190THREADP (Lisp_Object a)
@@ -231,7 +231,7 @@ struct Lisp_Mutex
231 231
232 /* The lower-level mutex object. */ 232 /* The lower-level mutex object. */
233 lisp_mutex_t mutex; 233 lisp_mutex_t mutex;
234}; 234} GCALIGNED_STRUCT;
235 235
236INLINE bool 236INLINE bool
237MUTEXP (Lisp_Object a) 237MUTEXP (Lisp_Object a)
@@ -265,7 +265,7 @@ struct Lisp_CondVar
265 265
266 /* The lower-level condition variable object. */ 266 /* The lower-level condition variable object. */
267 sys_cond_t cond; 267 sys_cond_t cond;
268}; 268} GCALIGNED_STRUCT;
269 269
270INLINE bool 270INLINE bool
271CONDVARP (Lisp_Object a) 271CONDVARP (Lisp_Object a)