X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fspecifier.h;h=a483ff6e55fdba2c99f70d9c6e408e0983ea674a;hb=26c9e2e09a7ccc89afc02482d72a35984833792a;hp=c925a57ad0cc5a6cbd2c8b75ba8b863c85654768;hpb=59eec5f21669e81977b5b1fe9bf717cab49cf7fb;p=chise%2Fxemacs-chise.git- diff --git a/src/specifier.h b/src/specifier.h index c925a57..a483ff6 100644 --- a/src/specifier.h +++ b/src/specifier.h @@ -300,14 +300,15 @@ extern 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 { \ @@ -411,6 +412,7 @@ struct specifier_caching int offset_into_struct_frame; void (*value_changed_in_frame) (Lisp_Object specifier, struct frame *f, Lisp_Object oldval); + int always_recompute; }; /* #### get image instances out of domains! */ @@ -480,7 +482,8 @@ void set_specifier_caching (Lisp_Object specifier, int struct_frame_offset, void (*value_changed_in_frame) (Lisp_Object specifier, struct frame *f, - Lisp_Object oldval)); + Lisp_Object oldval), + int always_recompute); void set_specifier_fallback (Lisp_Object specifier, Lisp_Object fallback); void recompute_all_cached_specifiers_in_window (struct window *w);