diff options
| author | Paul Eggert | 2018-09-06 19:17:14 -0700 |
|---|---|---|
| committer | Paul Eggert | 2018-09-06 23:56:13 -0700 |
| commit | 2c8520e19c0fe72d046033e39953b7a0a87be24e (patch) | |
| tree | 2ea12495ed8184e87108e17632ecd8c2ab02c8cf /src/thread.h | |
| parent | bca35315e16cb53415649e5c0ac2ec0cc1368679 (diff) | |
| download | emacs-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.h | 6 |
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 | ||
| 189 | INLINE bool | 189 | INLINE bool |
| 190 | THREADP (Lisp_Object a) | 190 | THREADP (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 | ||
| 236 | INLINE bool | 236 | INLINE bool |
| 237 | MUTEXP (Lisp_Object a) | 237 | MUTEXP (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 | ||
| 270 | INLINE bool | 270 | INLINE bool |
| 271 | CONDVARP (Lisp_Object a) | 271 | CONDVARP (Lisp_Object a) |