diff options
| author | Paul Eggert | 2012-04-21 17:53:32 -0700 |
|---|---|---|
| committer | Paul Eggert | 2012-04-21 17:53:32 -0700 |
| commit | bbd347f5f7e99da1a559dad818b5fa8f59c0901e (patch) | |
| tree | 77c1fc54c2240b08d2859109d18cac8812a8ffb1 /src/lisp.h | |
| parent | e4ecdc9c71af4199129d5dd2db1a32ff6b725fe4 (diff) | |
| parent | 9ee7d8b93cb143b473e6dffb708e777bc6fe5bd0 (diff) | |
| download | emacs-bbd347f5f7e99da1a559dad818b5fa8f59c0901e.tar.gz emacs-bbd347f5f7e99da1a559dad818b5fa8f59c0901e.zip | |
Merge from trunk.
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/src/lisp.h b/src/lisp.h index 864346d85c2..66e449b0039 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -1139,8 +1139,6 @@ struct Lisp_Symbol | |||
| 1139 | special (with `defvar' etc), and shouldn't be lexically bound. */ | 1139 | special (with `defvar' etc), and shouldn't be lexically bound. */ |
| 1140 | unsigned declared_special : 1; | 1140 | unsigned declared_special : 1; |
| 1141 | 1141 | ||
| 1142 | unsigned spacer : 23; | ||
| 1143 | |||
| 1144 | /* The symbol's name, as a Lisp string. | 1142 | /* The symbol's name, as a Lisp string. |
| 1145 | The name "xname" is used to intentionally break code referring to | 1143 | The name "xname" is used to intentionally break code referring to |
| 1146 | the old field "name" of type pointer to struct Lisp_String. */ | 1144 | the old field "name" of type pointer to struct Lisp_String. */ |
| @@ -1342,8 +1340,6 @@ struct Lisp_Misc_Any /* Supertype of all Misc types. */ | |||
| 1342 | ENUM_BF (Lisp_Misc_Type) type : 16; /* = Lisp_Misc_??? */ | 1340 | ENUM_BF (Lisp_Misc_Type) type : 16; /* = Lisp_Misc_??? */ |
| 1343 | unsigned gcmarkbit : 1; | 1341 | unsigned gcmarkbit : 1; |
| 1344 | int spacer : 15; | 1342 | int spacer : 15; |
| 1345 | /* Make it as long as "Lisp_Free without padding". */ | ||
| 1346 | void *fill; | ||
| 1347 | }; | 1343 | }; |
| 1348 | 1344 | ||
| 1349 | struct Lisp_Marker | 1345 | struct Lisp_Marker |
| @@ -1535,13 +1531,6 @@ struct Lisp_Free | |||
| 1535 | unsigned gcmarkbit : 1; | 1531 | unsigned gcmarkbit : 1; |
| 1536 | int spacer : 15; | 1532 | int spacer : 15; |
| 1537 | union Lisp_Misc *chain; | 1533 | union Lisp_Misc *chain; |
| 1538 | #ifdef USE_LSB_TAG | ||
| 1539 | /* Try to make sure that sizeof(Lisp_Misc) preserves TYPEBITS-alignment. | ||
| 1540 | This assumes that Lisp_Marker is the largest of the alternatives and | ||
| 1541 | that Lisp_Misc_Any has the same size as "Lisp_Free w/o padding". */ | ||
| 1542 | char padding[((((sizeof (struct Lisp_Marker) - 1) >> GCTYPEBITS) + 1) | ||
| 1543 | << GCTYPEBITS) - sizeof (struct Lisp_Misc_Any)]; | ||
| 1544 | #endif | ||
| 1545 | }; | 1534 | }; |
| 1546 | 1535 | ||
| 1547 | /* To get the type field of a union Lisp_Misc, use XMISCTYPE. | 1536 | /* To get the type field of a union Lisp_Misc, use XMISCTYPE. |
| @@ -1550,19 +1539,19 @@ struct Lisp_Free | |||
| 1550 | union Lisp_Misc | 1539 | union Lisp_Misc |
| 1551 | { | 1540 | { |
| 1552 | struct Lisp_Misc_Any u_any; /* Supertype of all Misc types. */ | 1541 | struct Lisp_Misc_Any u_any; /* Supertype of all Misc types. */ |
| 1553 | struct Lisp_Free u_free; /* Includes padding to force alignment. */ | 1542 | struct Lisp_Free u_free; |
| 1554 | struct Lisp_Marker u_marker; /* 5 */ | 1543 | struct Lisp_Marker u_marker; |
| 1555 | struct Lisp_Overlay u_overlay; /* 5 */ | 1544 | struct Lisp_Overlay u_overlay; |
| 1556 | struct Lisp_Save_Value u_save_value; /* 3 */ | 1545 | struct Lisp_Save_Value u_save_value; |
| 1557 | }; | 1546 | }; |
| 1558 | 1547 | ||
| 1559 | union Lisp_Fwd | 1548 | union Lisp_Fwd |
| 1560 | { | 1549 | { |
| 1561 | struct Lisp_Intfwd u_intfwd; /* 2 */ | 1550 | struct Lisp_Intfwd u_intfwd; |
| 1562 | struct Lisp_Boolfwd u_boolfwd; /* 2 */ | 1551 | struct Lisp_Boolfwd u_boolfwd; |
| 1563 | struct Lisp_Objfwd u_objfwd; /* 2 */ | 1552 | struct Lisp_Objfwd u_objfwd; |
| 1564 | struct Lisp_Buffer_Objfwd u_buffer_objfwd; /* 2 */ | 1553 | struct Lisp_Buffer_Objfwd u_buffer_objfwd; |
| 1565 | struct Lisp_Kboard_Objfwd u_kboard_objfwd; /* 2 */ | 1554 | struct Lisp_Kboard_Objfwd u_kboard_objfwd; |
| 1566 | }; | 1555 | }; |
| 1567 | 1556 | ||
| 1568 | /* Lisp floating point type */ | 1557 | /* Lisp floating point type */ |
| @@ -2253,7 +2242,7 @@ struct gcpro | |||
| 2253 | #define GC_USE_GCPROS_CHECK_ZOMBIES 3 | 2242 | #define GC_USE_GCPROS_CHECK_ZOMBIES 3 |
| 2254 | 2243 | ||
| 2255 | #ifndef GC_MARK_STACK | 2244 | #ifndef GC_MARK_STACK |
| 2256 | #define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE | 2245 | #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS |
| 2257 | #endif | 2246 | #endif |
| 2258 | 2247 | ||
| 2259 | /* Whether we do the stack marking manually. */ | 2248 | /* Whether we do the stack marking manually. */ |
| @@ -2876,6 +2865,14 @@ extern void syms_of_alloc (void); | |||
| 2876 | extern struct buffer * allocate_buffer (void); | 2865 | extern struct buffer * allocate_buffer (void); |
| 2877 | extern int valid_lisp_object_p (Lisp_Object); | 2866 | extern int valid_lisp_object_p (Lisp_Object); |
| 2878 | 2867 | ||
| 2868 | #ifdef REL_ALLOC | ||
| 2869 | /* Defined in ralloc.c */ | ||
| 2870 | extern void *r_alloc (void **, size_t); | ||
| 2871 | extern void r_alloc_free (void **); | ||
| 2872 | extern void *r_re_alloc (void **, size_t); | ||
| 2873 | extern void r_alloc_reset_variable (void **, void **); | ||
| 2874 | #endif | ||
| 2875 | |||
| 2879 | /* Defined in chartab.c */ | 2876 | /* Defined in chartab.c */ |
| 2880 | EXFUN (Fmake_char_table, 2); | 2877 | EXFUN (Fmake_char_table, 2); |
| 2881 | EXFUN (Fset_char_table_parent, 2); | 2878 | EXFUN (Fset_char_table_parent, 2); |