aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorPaul Eggert2012-04-21 17:53:32 -0700
committerPaul Eggert2012-04-21 17:53:32 -0700
commitbbd347f5f7e99da1a559dad818b5fa8f59c0901e (patch)
tree77c1fc54c2240b08d2859109d18cac8812a8ffb1 /src/lisp.h
parente4ecdc9c71af4199129d5dd2db1a32ff6b725fe4 (diff)
parent9ee7d8b93cb143b473e6dffb708e777bc6fe5bd0 (diff)
downloademacs-bbd347f5f7e99da1a559dad818b5fa8f59c0901e.tar.gz
emacs-bbd347f5f7e99da1a559dad818b5fa8f59c0901e.zip
Merge from trunk.
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h39
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
1349struct Lisp_Marker 1345struct 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
1550union Lisp_Misc 1539union 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
1559union Lisp_Fwd 1548union 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);
2876extern struct buffer * allocate_buffer (void); 2865extern struct buffer * allocate_buffer (void);
2877extern int valid_lisp_object_p (Lisp_Object); 2866extern int valid_lisp_object_p (Lisp_Object);
2878 2867
2868#ifdef REL_ALLOC
2869/* Defined in ralloc.c */
2870extern void *r_alloc (void **, size_t);
2871extern void r_alloc_free (void **);
2872extern void *r_re_alloc (void **, size_t);
2873extern void r_alloc_reset_variable (void **, void **);
2874#endif
2875
2879/* Defined in chartab.c */ 2876/* Defined in chartab.c */
2880EXFUN (Fmake_char_table, 2); 2877EXFUN (Fmake_char_table, 2);
2881EXFUN (Fset_char_table_parent, 2); 2878EXFUN (Fset_char_table_parent, 2);