Commit 5bfac5a9 authored by Richard M. Stallman's avatar Richard M. Stallman

(struct Lisp_Free, struct Lisp_Marker, etc.):

Make the `type' field just 16 bits, and declare as int.
Add explicit spacer field after it.
(struct Lisp_Marker): New field insertion_type.
parent cd9bbed5
...@@ -553,14 +553,19 @@ struct Lisp_Subr ...@@ -553,14 +553,19 @@ struct Lisp_Subr
/* A miscellaneous object, when it's on the free list. */ /* A miscellaneous object, when it's on the free list. */
struct Lisp_Free struct Lisp_Free
{ {
enum Lisp_Misc_Type type; /* = Lisp_Misc_Free */ int type : 16; /* = Lisp_Misc_Free */
int spacer : 16;
union Lisp_Misc *chain; union Lisp_Misc *chain;
}; };
/* In a marker, the markbit of the chain field is used as the gc mark bit */ /* In a marker, the markbit of the chain field is used as the gc mark bit */
struct Lisp_Marker struct Lisp_Marker
{ {
enum Lisp_Misc_Type type; /* = Lisp_Misc_Marker */ int type : 16; /* = Lisp_Misc_Marker */
int spacer : 15;
/* 1 means normal insertion at the marker's position
leaves the marker after the inserted text. */
int insertion_type : 1;
struct buffer *buffer; struct buffer *buffer;
Lisp_Object chain; Lisp_Object chain;
int bufpos; int bufpos;
...@@ -572,7 +577,8 @@ struct Lisp_Marker ...@@ -572,7 +577,8 @@ struct Lisp_Marker
specified int variable. */ specified int variable. */
struct Lisp_Intfwd struct Lisp_Intfwd
{ {
enum Lisp_Misc_Type type; /* = Lisp_Misc_Intfwd */ int type : 16; /* = Lisp_Misc_Intfwd */
int spacer : 16;
int *intvar; int *intvar;
}; };
...@@ -582,7 +588,8 @@ struct Lisp_Intfwd ...@@ -582,7 +588,8 @@ struct Lisp_Intfwd
nil if it is zero. */ nil if it is zero. */
struct Lisp_Boolfwd struct Lisp_Boolfwd
{ {
enum Lisp_Misc_Type type; /* = Lisp_Misc_Boolfwd */ int type : 16; /* = Lisp_Misc_Boolfwd */
int spacer : 16;
int *boolvar; int *boolvar;
}; };
...@@ -592,7 +599,8 @@ struct Lisp_Boolfwd ...@@ -592,7 +599,8 @@ struct Lisp_Boolfwd
specified variable. */ specified variable. */
struct Lisp_Objfwd struct Lisp_Objfwd
{ {
enum Lisp_Misc_Type type; /* = Lisp_Misc_Objfwd */ int type : 16; /* = Lisp_Misc_Objfwd */
int spacer : 16;
Lisp_Object *objvar; Lisp_Object *objvar;
}; };
...@@ -600,7 +608,8 @@ struct Lisp_Objfwd ...@@ -600,7 +608,8 @@ struct Lisp_Objfwd
current buffer. Value is byte index of slot within buffer. */ current buffer. Value is byte index of slot within buffer. */
struct Lisp_Buffer_Objfwd struct Lisp_Buffer_Objfwd
{ {
enum Lisp_Misc_Type type; /* = Lisp_Misc_Buffer_Objfwd */ int type : 16; /* = Lisp_Misc_Buffer_Objfwd */
int spacer : 16;
int offset; int offset;
}; };
...@@ -646,8 +655,9 @@ struct Lisp_Buffer_Objfwd ...@@ -646,8 +655,9 @@ struct Lisp_Buffer_Objfwd
Only make-local-variable does that. */ Only make-local-variable does that. */
struct Lisp_Buffer_Local_Value struct Lisp_Buffer_Local_Value
{ {
enum Lisp_Misc_Type type; /* = Lisp_Misc_Buffer_Local_Value int type : 16; /* = Lisp_Misc_Buffer_Local_Value
or Lisp_Misc_Some_Buffer_Local_Value */ or Lisp_Misc_Some_Buffer_Local_Value */
int spacer : 16;
Lisp_Object car, cdr; Lisp_Object car, cdr;
}; };
...@@ -656,9 +666,12 @@ struct Lisp_Buffer_Local_Value ...@@ -656,9 +666,12 @@ struct Lisp_Buffer_Local_Value
PLIST is the overlay's property list. */ PLIST is the overlay's property list. */
struct Lisp_Overlay struct Lisp_Overlay
{ {
enum Lisp_Misc_Type type; /* = Lisp_Misc_Overlay */ int type : 16; /* = Lisp_Misc_Overlay */
int spacer : 16;
Lisp_Object start, end, plist; Lisp_Object start, end, plist;
}; };
union Lisp_Misc union Lisp_Misc
{ {
enum Lisp_Misc_Type type; enum Lisp_Misc_Type type;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment