aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2003-06-25 23:16:30 +0000
committerStefan Monnier2003-06-25 23:16:30 +0000
commita84f89d5101aba7a431b98a844a54032dd74a1af (patch)
tree4a4640aeb9da143faf5465b5e3828eef8041e922 /src
parent5429ab5925175637a34afc9dfa2b5fd01a3f5059 (diff)
downloademacs-a84f89d5101aba7a431b98a844a54032dd74a1af.tar.gz
emacs-a84f89d5101aba7a431b98a844a54032dd74a1af.zip
(struct interval, struct Lisp_Symbol, struct Lisp_Free)
(struct Lisp_Marker, struct Lisp_Intfwd, struct Lisp_Boolfwd) (struct Lisp_Kboard_Objfwd, struct Lisp_Save_Value) (struct Lisp_Buffer_Local_Value, struct Lisp_Overlay) (struct Lisp_Objfwd, struct Lisp_Buffer_Objfwd): Add `gcmarkbit' field.
Diffstat (limited to 'src')
-rw-r--r--src/lisp.h36
1 files changed, 25 insertions, 11 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 0bf58c70641..1bc5949cea6 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -511,7 +511,7 @@ extern size_t pure_size;
511 511
512/* Construct a Lisp_Object from a value or address. */ 512/* Construct a Lisp_Object from a value or address. */
513 513
514#define XSETINT(a, b) XSET (a, Lisp_Int, b) 514#define XSETINT(a, b) (a) = make_number (b)
515#define XSETCONS(a, b) XSET (a, Lisp_Cons, b) 515#define XSETCONS(a, b) XSET (a, Lisp_Cons, b)
516#define XSETVECTOR(a, b) XSET (a, Lisp_Vectorlike, b) 516#define XSETVECTOR(a, b) XSET (a, Lisp_Vectorlike, b)
517#define XSETSTRING(a, b) XSET (a, Lisp_String, b) 517#define XSETSTRING(a, b) XSET (a, Lisp_String, b)
@@ -591,6 +591,8 @@ struct interval
591 } up; 591 } up;
592 unsigned int up_obj : 1; 592 unsigned int up_obj : 1;
593 593
594 unsigned gcmarkbit : 1;
595
594 /* The remaining components are `properties' of the interval. 596 /* The remaining components are `properties' of the interval.
595 The first four are duplicates for things which can be on the list, 597 The first four are duplicates for things which can be on the list,
596 for purposes of speed. */ 598 for purposes of speed. */
@@ -879,6 +881,8 @@ enum symbol_interned
879 881
880struct Lisp_Symbol 882struct Lisp_Symbol
881{ 883{
884 unsigned gcmarkbit : 1;
885
882 /* Non-zero means symbol serves as a variable alias. The symbol 886 /* Non-zero means symbol serves as a variable alias. The symbol
883 holding the real value is found in the value slot. */ 887 holding the real value is found in the value slot. */
884 unsigned indirect_variable : 1; 888 unsigned indirect_variable : 1;
@@ -1088,7 +1092,8 @@ struct Lisp_Hash_Table
1088struct Lisp_Free 1092struct Lisp_Free
1089 { 1093 {
1090 int type : 16; /* = Lisp_Misc_Free */ 1094 int type : 16; /* = Lisp_Misc_Free */
1091 int spacer : 16; 1095 unsigned gcmarkbit : 1;
1096 int spacer : 15;
1092 union Lisp_Misc *chain; 1097 union Lisp_Misc *chain;
1093 }; 1098 };
1094 1099
@@ -1096,7 +1101,8 @@ struct Lisp_Free
1096struct Lisp_Marker 1101struct Lisp_Marker
1097{ 1102{
1098 int type : 16; /* = Lisp_Misc_Marker */ 1103 int type : 16; /* = Lisp_Misc_Marker */
1099 int spacer : 15; 1104 unsigned gcmarkbit : 1;
1105 int spacer : 14;
1100 /* 1 means normal insertion at the marker's position 1106 /* 1 means normal insertion at the marker's position
1101 leaves the marker after the inserted text. */ 1107 leaves the marker after the inserted text. */
1102 unsigned int insertion_type : 1; 1108 unsigned int insertion_type : 1;
@@ -1123,7 +1129,8 @@ struct Lisp_Marker
1123struct Lisp_Intfwd 1129struct Lisp_Intfwd
1124 { 1130 {
1125 int type : 16; /* = Lisp_Misc_Intfwd */ 1131 int type : 16; /* = Lisp_Misc_Intfwd */
1126 int spacer : 16; 1132 unsigned gcmarkbit : 1;
1133 int spacer : 15;
1127 EMACS_INT *intvar; 1134 EMACS_INT *intvar;
1128 }; 1135 };
1129 1136
@@ -1134,7 +1141,8 @@ struct Lisp_Intfwd
1134struct Lisp_Boolfwd 1141struct Lisp_Boolfwd
1135 { 1142 {
1136 int type : 16; /* = Lisp_Misc_Boolfwd */ 1143 int type : 16; /* = Lisp_Misc_Boolfwd */
1137 int spacer : 16; 1144 unsigned gcmarkbit : 1;
1145 int spacer : 15;
1138 int *boolvar; 1146 int *boolvar;
1139 }; 1147 };
1140 1148
@@ -1145,7 +1153,8 @@ struct Lisp_Boolfwd
1145struct Lisp_Objfwd 1153struct Lisp_Objfwd
1146 { 1154 {
1147 int type : 16; /* = Lisp_Misc_Objfwd */ 1155 int type : 16; /* = Lisp_Misc_Objfwd */
1148 int spacer : 16; 1156 unsigned gcmarkbit : 1;
1157 int spacer : 15;
1149 Lisp_Object *objvar; 1158 Lisp_Object *objvar;
1150 }; 1159 };
1151 1160
@@ -1154,7 +1163,8 @@ struct Lisp_Objfwd
1154struct Lisp_Buffer_Objfwd 1163struct Lisp_Buffer_Objfwd
1155 { 1164 {
1156 int type : 16; /* = Lisp_Misc_Buffer_Objfwd */ 1165 int type : 16; /* = Lisp_Misc_Buffer_Objfwd */
1157 int spacer : 16; 1166 unsigned gcmarkbit : 1;
1167 int spacer : 15;
1158 int offset; 1168 int offset;
1159 }; 1169 };
1160 1170
@@ -1188,7 +1198,8 @@ struct Lisp_Buffer_Local_Value
1188 { 1198 {
1189 int type : 16; /* = Lisp_Misc_Buffer_Local_Value 1199 int type : 16; /* = Lisp_Misc_Buffer_Local_Value
1190 or Lisp_Misc_Some_Buffer_Local_Value */ 1200 or Lisp_Misc_Some_Buffer_Local_Value */
1191 int spacer : 13; 1201 unsigned gcmarkbit : 1;
1202 int spacer : 12;
1192 1203
1193 /* 1 means this variable is allowed to have frame-local bindings, 1204 /* 1 means this variable is allowed to have frame-local bindings,
1194 so check for them when looking for the proper binding. */ 1205 so check for them when looking for the proper binding. */
@@ -1224,7 +1235,8 @@ struct Lisp_Buffer_Local_Value
1224struct Lisp_Overlay 1235struct Lisp_Overlay
1225 { 1236 {
1226 int type : 16; /* = Lisp_Misc_Overlay */ 1237 int type : 16; /* = Lisp_Misc_Overlay */
1227 int spacer : 16; 1238 unsigned gcmarkbit : 1;
1239 int spacer : 15;
1228 Lisp_Object start, end, plist; 1240 Lisp_Object start, end, plist;
1229 }; 1241 };
1230 1242
@@ -1233,7 +1245,8 @@ struct Lisp_Overlay
1233struct Lisp_Kboard_Objfwd 1245struct Lisp_Kboard_Objfwd
1234 { 1246 {
1235 int type : 16; /* = Lisp_Misc_Kboard_Objfwd */ 1247 int type : 16; /* = Lisp_Misc_Kboard_Objfwd */
1236 int spacer : 16; 1248 unsigned gcmarkbit : 1;
1249 int spacer : 15;
1237 int offset; 1250 int offset;
1238 }; 1251 };
1239 1252
@@ -1242,7 +1255,8 @@ struct Lisp_Kboard_Objfwd
1242struct Lisp_Save_Value 1255struct Lisp_Save_Value
1243 { 1256 {
1244 int type : 16; /* = Lisp_Misc_Save_Value */ 1257 int type : 16; /* = Lisp_Misc_Save_Value */
1245 int spacer : 16; 1258 unsigned gcmarkbit : 1;
1259 int spacer : 15;
1246 void *pointer; 1260 void *pointer;
1247 int integer; 1261 int integer;
1248 }; 1262 };