diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 79fb5d875..6b4e7fec9 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,5 +1,8 @@ 2003-04-17 Mikael Djurfeldt + * goops.c (TEST_CHANGE_CLASS): Update variable class after class + change. + * eq.c (scm_eqv_p, scm_equal_p): Turned into a primitive generics. * snarf.h (SCM_PRIMITIVE_GENERIC, SCM_PRIMITIVE_GENERIC_1): New diff --git a/libguile/goops.c b/libguile/goops.c index 223b766f8..8da4a0772 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -115,12 +115,14 @@ #define SCM_OBJ_CLASS_REDEF(x) (SCM_STRUCT_VTABLE_DATA(x)[scm_si_redefined]) */ -#define TEST_CHANGE_CLASS(obj, class) \ - { \ - class = SCM_CLASS_OF (obj); \ - if (SCM_OBJ_CLASS_REDEF (obj) != SCM_BOOL_F) \ - CALL_GF3 ("change-object-class", \ - obj, class, SCM_OBJ_CLASS_REDEF (obj)); \ +#define TEST_CHANGE_CLASS(obj, class) \ + { \ + class = SCM_CLASS_OF (obj); \ + if (SCM_OBJ_CLASS_REDEF (obj) != SCM_BOOL_F) \ + { \ + scm_change_object_class (obj, class, SCM_OBJ_CLASS_REDEF (obj));\ + class = SCM_CLASS_OF (obj); \ + } \ } #define NXT_MTHD_METHODS(m) (SCM_VELTS (m)[1])