update.
[chise/xemacs-chise.git.1] / src / specifier.h
index 8c82331..918d06d 100644 (file)
@@ -154,7 +154,7 @@ struct specifier_methods
 
      This method must presume that both INSTANTIATOR and MATCHSPEC are
      already validated by the corresponding validate_* methods, and
 
      This method must presume that both INSTANTIATOR and MATCHSPEC are
      already validated by the corresponding validate_* methods, and
-     may abort if they are invalid.
+     may ABORT if they are invalid.
 
      Return value is an instance, which is returned immediately to the
      caller, or Qunbound to continue instantiation lookup chain.
 
      Return value is an instance, which is returned immediately to the
      caller, or Qunbound to continue instantiation lookup chain.
@@ -235,7 +235,7 @@ struct Lisp_Specifier
   Lisp_Object fallback;
 
   /* type-specific extra data attached to a specifier */
   Lisp_Object fallback;
 
   /* type-specific extra data attached to a specifier */
-  char data[1];
+  max_align_t data[1];
 };
 typedef struct Lisp_Specifier Lisp_Specifier;
 
 };
 typedef struct Lisp_Specifier Lisp_Specifier;
 
@@ -261,7 +261,7 @@ DECLARE_LRECORD (specifier, Lisp_Specifier);
 
 /***** Defining new specifier types *****/
 
 
 /***** Defining new specifier types *****/
 
-#define specifier_data_offset (offsetof (Lisp_Specifier, data))
+#define specifier_data_offset offsetof (Lisp_Specifier, data)
 extern const struct lrecord_description specifier_empty_extra_description[];
 
 #ifdef ERROR_CHECK_TYPECHECK
 extern const struct lrecord_description specifier_empty_extra_description[];
 
 #ifdef ERROR_CHECK_TYPECHECK
@@ -300,14 +300,15 @@ extern struct specifier_methods * type##_specifier_methods
 #define DEFINE_SPECIFIER_TYPE(type)                                    \
 struct specifier_methods * type##_specifier_methods
 
 #define DEFINE_SPECIFIER_TYPE(type)                                    \
 struct specifier_methods * type##_specifier_methods
 
-#define INITIALIZE_SPECIFIER_TYPE(type, obj_name, pred_sym) do {       \
-  type##_specifier_methods = xnew_and_zero (struct specifier_methods); \
-  type##_specifier_methods->name = obj_name;                           \
-  type##_specifier_methods->extra_description =                                \
-    specifier_empty_extra_description;                                 \
-  defsymbol_nodump (&type##_specifier_methods->predicate_symbol, pred_sym); \
-  add_entry_to_specifier_type_list (Q##type, type##_specifier_methods);            \
-  dumpstruct (&type##_specifier_methods, &specifier_methods_description);   \
+#define INITIALIZE_SPECIFIER_TYPE(type, obj_name, pred_sym) do {               \
+  type##_specifier_methods = xnew_and_zero (struct specifier_methods);         \
+  type##_specifier_methods->name = obj_name;                                   \
+  type##_specifier_methods->extra_description =                                        \
+    specifier_empty_extra_description;                                         \
+  defsymbol_nodump (&type##_specifier_methods->predicate_symbol, pred_sym);    \
+  add_entry_to_specifier_type_list (Q##type, type##_specifier_methods);                \
+  dump_add_root_struct_ptr (&type##_specifier_methods,                         \
+                           &specifier_methods_description);                    \
 } while (0)
 
 #define REINITIALIZE_SPECIFIER_TYPE(type) do {                         \
 } while (0)
 
 #define REINITIALIZE_SPECIFIER_TYPE(type) do {                         \
@@ -416,7 +417,7 @@ struct specifier_caching
 
 /* #### get image instances out of domains! */
 
 
 /* #### get image instances out of domains! */
 
-/* #### I think the following should abort() rather than return nil
+/* #### I think the following should ABORT() rather than return nil
    when an invalid domain is given; much more likely we'll catch design
    errors early. --ben */
 
    when an invalid domain is given; much more likely we'll catch design
    errors early. --ben */