1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

remove cache-mutex slot from generics

* libguile/goops.c:
* libguile/goops.h: Remove cache-mutex slot from generics, and renumber
  other slots.
This commit is contained in:
Andy Wingo 2009-11-08 11:34:30 +01:00
parent 2c38adf863
commit 72d2e7e65f
2 changed files with 7 additions and 18 deletions

View file

@ -2273,10 +2273,9 @@ SCM_DEFINE (scm_make, "make", 0, 0, 1,
if (class == scm_class_generic || class == scm_class_accessor) if (class == scm_class_generic || class == scm_class_accessor)
{ {
z = scm_make_struct (class, SCM_INUM0, z = scm_make_struct (class, SCM_INUM0,
scm_list_5 (SCM_BOOL_F, scm_list_4 (SCM_BOOL_F,
SCM_EOL, SCM_EOL,
SCM_INUM0, SCM_INUM0,
scm_make_mutex (),
SCM_EOL)); SCM_EOL));
scm_set_procedure_property_x (z, scm_sym_name, scm_set_procedure_property_x (z, scm_sym_name,
scm_get_keyword (k_name, scm_get_keyword (k_name,
@ -2482,24 +2481,15 @@ create_standard_classes (void)
SCM amethod_slots = scm_list_1 (scm_list_3 (scm_from_locale_symbol ("slot-definition"), SCM amethod_slots = scm_list_1 (scm_list_3 (scm_from_locale_symbol ("slot-definition"),
k_init_keyword, k_init_keyword,
k_slot_definition)); k_slot_definition));
SCM mutex_slot = scm_list_1 (scm_from_locale_symbol ("make-mutex")); SCM gf_slots = scm_list_5 (scm_from_locale_symbol ("methods"),
SCM mutex_closure = scm_i_eval_x (scm_list_3 (scm_sym_lambda,
SCM_EOL,
mutex_slot),
SCM_EOL);
SCM gf_slots = scm_list_n (scm_from_locale_symbol ("methods"),
scm_list_3 (scm_from_locale_symbol ("n-specialized"), scm_list_3 (scm_from_locale_symbol ("n-specialized"),
k_init_value, k_init_value,
SCM_INUM0), SCM_INUM0),
scm_list_3 (scm_from_locale_symbol ("cache-mutex"),
k_init_thunk,
mutex_closure),
scm_list_3 (scm_from_locale_symbol ("extended-by"), scm_list_3 (scm_from_locale_symbol ("extended-by"),
k_init_value, k_init_value,
SCM_EOL), SCM_EOL),
scm_from_locale_symbol ("%cache"), scm_from_locale_symbol ("%cache"),
scm_from_locale_symbol ("effective-methods"), scm_from_locale_symbol ("effective-methods"));
SCM_UNDEFINED);
SCM setter_slots = scm_list_1 (sym_setter); SCM setter_slots = scm_list_1 (sym_setter);
SCM egf_slots = scm_list_1 (scm_list_3 (scm_from_locale_symbol ("extends"), SCM egf_slots = scm_list_1 (scm_list_3 (scm_from_locale_symbol ("extends"),
k_init_value, k_init_value,

View file

@ -168,11 +168,10 @@ typedef struct scm_t_method {
#define scm_si_dispatch_procedure scm_applicable_struct_index_procedure /* 0 */ #define scm_si_dispatch_procedure scm_applicable_struct_index_procedure /* 0 */
#define scm_si_methods 1 #define scm_si_methods 1
#define scm_si_n_specialized 2 #define scm_si_n_specialized 2
#define scm_si_cache_mutex 3 #define scm_si_extended_by 3
#define scm_si_extended_by 4 #define scm_si_generic_cache 4
#define scm_si_generic_cache 5 #define scm_si_effective_methods 5
#define scm_si_effective_methods 6 #define scm_si_generic_setter 6
#define scm_si_generic_setter 7
#define scm_si_generic_function 0 /* offset of gf slot in a <method> */ #define scm_si_generic_function 0 /* offset of gf slot in a <method> */
#define scm_si_specializers 1 /* offset of spec. slot in a <method> */ #define scm_si_specializers 1 /* offset of spec. slot in a <method> */