From 0f84ac3fe6da365c9580ea2d475c4fb8fa58b1a7 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 5 Nov 2009 11:32:16 +0100 Subject: [PATCH] first step towards effective methods * libguile/goops.c (create_standard_classes): * libguile/goops.h *scm_si_applicable_methods, scm_si_effective_method) (scm_si_applicable_setter_methods, scm_si_effective_setter_method): Add space for the new form of the generic cache and effective method. --- libguile/goops.c | 6 +++++- libguile/goops.h | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libguile/goops.c b/libguile/goops.c index ef0703561..a59521002 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -2594,8 +2594,12 @@ create_standard_classes (void) k_init_value, SCM_EOL), scm_from_locale_symbol ("%cache"), + scm_from_locale_symbol ("applicable-methods"), + scm_from_locale_symbol ("effective-method"), SCM_UNDEFINED); - SCM setter_slots = scm_list_1 (scm_from_locale_symbol ("%setter-cache")); + SCM setter_slots = scm_list_3 (scm_from_locale_symbol ("%setter-cache"), + scm_from_locale_symbol ("applicable-setter-methods"), + scm_from_locale_symbol ("effective-setter-method")); SCM egf_slots = scm_list_1 (scm_list_3 (scm_from_locale_symbol ("extends"), k_init_value, SCM_EOL)); diff --git a/libguile/goops.h b/libguile/goops.h index 78baba731..eaf218893 100644 --- a/libguile/goops.h +++ b/libguile/goops.h @@ -178,7 +178,11 @@ typedef struct scm_t_method { #define scm_si_cache_mutex 3 #define scm_si_extended_by 4 #define scm_si_generic_cache 5 -#define scm_si_generic_setter_cache 6 +#define scm_si_applicable_methods 6 +#define scm_si_effective_method 7 +#define scm_si_generic_setter_cache 8 +#define scm_si_applicable_setter_methods 9 +#define scm_si_effective_setter_method 10 #define scm_si_generic_function 0 /* offset of gf slot in a */ #define scm_si_specializers 1 /* offset of spec. slot in a */