diff options
| author | Stefan Monnier | 2003-06-25 23:16:30 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2003-06-25 23:16:30 +0000 |
| commit | a84f89d5101aba7a431b98a844a54032dd74a1af (patch) | |
| tree | 4a4640aeb9da143faf5465b5e3828eef8041e922 /src | |
| parent | 5429ab5925175637a34afc9dfa2b5fd01a3f5059 (diff) | |
| download | emacs-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.h | 36 |
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 | ||
| 880 | struct Lisp_Symbol | 882 | struct 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 | |||
| 1088 | struct Lisp_Free | 1092 | struct 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 | |||
| 1096 | struct Lisp_Marker | 1101 | struct 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 | |||
| 1123 | struct Lisp_Intfwd | 1129 | struct 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 | |||
| 1134 | struct Lisp_Boolfwd | 1141 | struct 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 | |||
| 1145 | struct Lisp_Objfwd | 1153 | struct 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 | |||
| 1154 | struct Lisp_Buffer_Objfwd | 1163 | struct 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 | |||
| 1224 | struct Lisp_Overlay | 1235 | struct 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 | |||
| 1233 | struct Lisp_Kboard_Objfwd | 1245 | struct 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 | |||
| 1242 | struct Lisp_Save_Value | 1255 | struct 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 | }; |