From 32b12f40509e4bcb0823e1bb2a57e50af14560b5 Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Fri, 23 Oct 2009 14:00:19 -0400 Subject: [PATCH] Reduce some errors under -DSCM_DEBUG=1. * goops.c (scm_sys_modify_instance, scm_sys_modify_class): Use SCM_{,SET_}CELL_WORD_[01] instead of SCM_{,SET}C[AD]R since the objects passed are not pairs. --- libguile/goops.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/libguile/goops.c b/libguile/goops.c index 44c277f75..9848e431f 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -1650,12 +1650,13 @@ SCM_DEFINE (scm_sys_modify_instance, "%modify-instance", 2, 0, 0, */ SCM_CRITICAL_SECTION_START; { - SCM car = SCM_CAR (old); - SCM cdr = SCM_CDR (old); - SCM_SETCAR (old, SCM_CAR (new)); - SCM_SETCDR (old, SCM_CDR (new)); - SCM_SETCAR (new, car); - SCM_SETCDR (new, cdr); + scm_t_bits word0, word1; + word0 = SCM_CELL_WORD_0 (old); + word1 = SCM_CELL_WORD_1 (old); + SCM_SET_CELL_WORD_0 (old, SCM_CELL_WORD_0 (new)); + SCM_SET_CELL_WORD_1 (old, SCM_CELL_WORD_1 (new)); + SCM_SET_CELL_WORD_0 (new, word0); + SCM_SET_CELL_WORD_1 (new, word1); } SCM_CRITICAL_SECTION_END; return SCM_UNSPECIFIED; @@ -1672,13 +1673,14 @@ SCM_DEFINE (scm_sys_modify_class, "%modify-class", 2, 0, 0, SCM_CRITICAL_SECTION_START; { - SCM car = SCM_CAR (old); - SCM cdr = SCM_CDR (old); - SCM_SETCAR (old, SCM_CAR (new)); - SCM_SETCDR (old, SCM_CDR (new)); + scm_t_bits word0, word1; + word0 = SCM_CELL_WORD_0 (old); + word1 = SCM_CELL_WORD_1 (old); + SCM_SET_CELL_WORD_0 (old, SCM_CELL_WORD_0 (new)); + SCM_SET_CELL_WORD_1 (old, SCM_CELL_WORD_1 (new)); SCM_STRUCT_DATA (old)[scm_vtable_index_vtable] = SCM_UNPACK (old); - SCM_SETCAR (new, car); - SCM_SETCDR (new, cdr); + SCM_SET_CELL_WORD_0 (new, word0); + SCM_SET_CELL_WORD_1 (new, word1); SCM_STRUCT_DATA (new)[scm_vtable_index_vtable] = SCM_UNPACK (new); } SCM_CRITICAL_SECTION_END;