aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorPaul Eggert2020-05-25 23:24:47 -0700
committerPaul Eggert2020-05-25 23:28:04 -0700
commitc4faf78a985aa8a147b4a5f7530ea43d0ad55835 (patch)
treed5137851674fedd2b36068abd84f404645b870b9 /src/lisp.h
parent92278640babbfe1383ebba3baf3bc10278a01050 (diff)
downloademacs-c4faf78a985aa8a147b4a5f7530ea43d0ad55835.tar.gz
emacs-c4faf78a985aa8a147b4a5f7530ea43d0ad55835.zip
Move union emacs_align_type to alloc.c
* src/alloc.c (union emacs_align_type): Move to here ... * src/lisp.h: ... from here, and uncomment out some of the types that alloc.c can see but lisp.h cannot.
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h42
1 files changed, 1 insertions, 41 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 937052f6df8..8bd83a888ce 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -278,7 +278,7 @@ error !;
278 and does not contain a GC-aligned struct or union, putting 278 and does not contain a GC-aligned struct or union, putting
279 GCALIGNED_STRUCT after its closing '}' can help the compiler 279 GCALIGNED_STRUCT after its closing '}' can help the compiler
280 generate better code. Also, such structs should be added to the 280 generate better code. Also, such structs should be added to the
281 emacs_align_type union. 281 emacs_align_type union in alloc.c.
282 282
283 Although these macros are reasonably portable, they are not 283 Although these macros are reasonably portable, they are not
284 guaranteed on non-GCC platforms, as C11 does not require support 284 guaranteed on non-GCC platforms, as C11 does not require support
@@ -5060,46 +5060,6 @@ maybe_gc (void)
5060 maybe_garbage_collect (); 5060 maybe_garbage_collect ();
5061} 5061}
5062 5062
5063/* A type with alignment at least as large as any object that Emacs
5064 allocates. This is not max_align_t because some platforms (e.g.,
5065 mingw) have buggy malloc implementations that do not align for
5066 max_align_t. This union contains types of all GCALIGNED_STRUCT
5067 components visible here. */
5068union emacs_align_type
5069{
5070 struct Lisp_Bool_Vector Lisp_Bool_Vector;
5071 struct Lisp_Char_Table Lisp_Char_Table;
5072 struct Lisp_CondVar Lisp_CondVar;
5073 struct Lisp_Finalizer Lisp_Finalizer;
5074 struct Lisp_Float Lisp_Float;
5075 struct Lisp_Hash_Table Lisp_Hash_Table;
5076 struct Lisp_Marker Lisp_Marker;
5077 struct Lisp_Misc_Ptr Lisp_Misc_Ptr;
5078 struct Lisp_Mutex Lisp_Mutex;
5079 struct Lisp_Overlay Lisp_Overlay;
5080 struct Lisp_Sub_Char_Table Lisp_Sub_Char_Table;
5081 struct Lisp_Subr Lisp_Subr;
5082 struct Lisp_User_Ptr Lisp_User_Ptr;
5083 struct Lisp_Vector Lisp_Vector;
5084 struct thread_state thread_state;
5085
5086 /* Omit the following since they would require including bignum.h,
5087 frame.h etc., and in practice their alignments never exceed that
5088 of the structs already listed. */
5089#if 0
5090 struct frame frame;
5091 struct Lisp_Bignum Lisp_Bignum;
5092 struct Lisp_Module_Function Lisp_Module_Function;
5093 struct Lisp_Process Lisp_Process;
5094 struct save_window_data save_window_data;
5095 struct scroll_bar scroll_bar;
5096 struct terminal terminal;
5097 struct window window;
5098 struct xwidget xwidget;
5099 struct xwidget_view xwidget_view;
5100#endif
5101};
5102
5103INLINE_HEADER_END 5063INLINE_HEADER_END
5104 5064
5105#endif /* EMACS_LISP_H */ 5065#endif /* EMACS_LISP_H */