remove gcmarkbit fields
authorRobin Templeton <robin@terpri.org>
Mon, 30 Jun 2014 08:29:47 +0000 (04:29 -0400)
committerRobin Templeton <robin@terpri.org>
Sat, 18 Apr 2015 22:49:08 +0000 (18:49 -0400)
* src/lisp.h (struct Lisp_Symbol, struct Lisp_Misc_Any)
  (struct Lisp_Marker, struct Lisp_Overlay, struct Lisp_Save_Value):
* src/intervals.h (struct interval): Remove `gcmarkbit' fields. All uses
  changed.

Conflicts:
src/alloc.c
src/intervals.h
src/lisp.h

src/alloc.c
src/intervals.h
src/lisp.h

index 51ab850..07bc038 100644 (file)
@@ -1200,7 +1200,6 @@ Its value is void, and its function definition and property list are nil.  */)
   SET_SYMBOL_VAL (p, Qunbound);
   set_symbol_function (val, Qnil);
   set_symbol_next (val, NULL);
-  p->gcmarkbit = false;
   p->interned = SYMBOL_UNINTERNED;
   p->constant = 0;
   p->declared_special = false;
index 4e7a177..649f116 100644 (file)
@@ -44,8 +44,6 @@ struct interval
   } up;
   bool_bf up_obj : 1;
 
-  bool_bf gcmarkbit : 1;
-
   /* The remaining components are `properties' of the interval.
      The first four are duplicates for things which can be on the list,
      for purposes of speed.  */
index 546926b..b759180 100644 (file)
@@ -1185,8 +1185,7 @@ STRING_SET_CHARS (Lisp_Object string, ptrdiff_t newsize)
 struct vectorlike_header
   {
     /* The only field contains various pieces of information:
-       - The MSB (ARRAY_MARK_FLAG) holds the gcmarkbit.
-       - The next bit (PSEUDOVECTOR_FLAG) indicates whether this is a plain
+       - The second bit (PSEUDOVECTOR_FLAG) indicates whether this is a plain
          vector (0) or a pseudovector (1).
        - If PSEUDOVECTOR_FLAG is 0, the rest holds the size (number
          of slots) of the vector.
@@ -1555,8 +1554,6 @@ enum symbol_redirect
 
 struct Lisp_Symbol
 {
-  bool_bf gcmarkbit : 1;
-
   /* Indicates where the value can be found:
      0 : it's a plain var, the value is in the `value' field.
      1 : it's a varalias, the value is really in the `alias' symbol.
@@ -1854,15 +1851,11 @@ SXHASH_REDUCE (EMACS_UINT x)
 struct Lisp_Misc_Any           /* Supertype of all Misc types.  */
 {
   ENUM_BF (Lisp_Misc_Type) type : 16;          /* = Lisp_Misc_??? */
-  bool_bf gcmarkbit : 1;
-  unsigned spacer : 15;
 };
 
 struct Lisp_Marker
 {
   ENUM_BF (Lisp_Misc_Type) type : 16;          /* = Lisp_Misc_Marker */
-  bool_bf gcmarkbit : 1;
-  unsigned spacer : 13;
   /* This flag is temporarily used in the functions
      decode/encode_coding_object to record that the marker position
      must be adjusted after the conversion.  */
@@ -1915,8 +1908,6 @@ struct Lisp_Overlay
 */
   {
     ENUM_BF (Lisp_Misc_Type) type : 16;        /* = Lisp_Misc_Overlay */
-    bool_bf gcmarkbit : 1;
-    unsigned spacer : 15;
     struct Lisp_Overlay *next;
     Lisp_Object start;
     Lisp_Object end;
@@ -1993,8 +1984,7 @@ typedef void (*voidfuncptr) (void);
 struct Lisp_Save_Value
   {
     ENUM_BF (Lisp_Misc_Type) type : 16;        /* = Lisp_Misc_Save_Value */
-    bool_bf gcmarkbit : 1;
-    unsigned spacer : 32 - (16 + 1 + SAVE_TYPE_BITS);
+    unsigned spacer : 32 - (16 + SAVE_TYPE_BITS);
 
     /* V->data may hold up to SAVE_VALUE_SLOTS entries.  The type of
        V's data entries are determined by V->save_type.  E.g., if