summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/ChangeLog3
-rw-r--r--libguile/goops.c13
2 files changed, 11 insertions, 5 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog
index df5177dba..ccf2dac84 100644
--- a/libguile/ChangeLog
+++ b/libguile/ChangeLog
@@ -6,6 +6,9 @@
2003-04-17 Mikael Djurfeldt <djurfeldt@nada.kth.se>
+ * goops.c (TEST_CHANGE_CLASS): Update variable class after class
+ change.
+
* eq.c (scm_eqv_p): Turned into a primitive generic.
2003-04-16 Rob Browning <rlb@defaultvalue.org>
diff --git a/libguile/goops.c b/libguile/goops.c
index 02c18baac..6eac27ef0 100644
--- a/libguile/goops.c
+++ b/libguile/goops.c
@@ -91,11 +91,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) \
- scm_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])