From a963f787040537f47883fc63d6c85b827fd3bc92 Mon Sep 17 00:00:00 2001 From: Mikael Djurfeldt Date: Wed, 22 Mar 2000 02:12:13 +0000 Subject: [PATCH] * eval.c (SCM_CEVAL, scm_unmemocar): SCM_PACK/UNPACK corrections. --- libguile/eval.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libguile/eval.c b/libguile/eval.c index f99a80e36..283bbf06b 100644 --- a/libguile/eval.c +++ b/libguile/eval.c @@ -414,7 +414,7 @@ scm_unmemocar (SCM form, SCM env) return form; c = SCM_CAR (form); if (1 == (SCM_UNPACK (c) & 7)) - SCM_SETCAR (form, SCM_CAR (c - 1)); + SCM_SETCAR (form, SCM_GLOC_SYM (c)); #ifdef MEMOIZE_LOCALS #ifdef DEBUG_EXTENSIONS else if (SCM_ILOCP (c)) @@ -2421,7 +2421,8 @@ dispatch: while (SCM_NIMP (arg2)) { proc = SCM_GLOC_VAL (SCM_CAR (t.arg1)); - SCM_SETCDR (SCM_CAR (t.arg1) - 1L, SCM_CAR (arg2)); + SCM_SETCDR (SCM_PACK (SCM_UNPACK (SCM_CAR (t.arg1)) - 1L), + SCM_CAR (arg2)); SCM_SETCAR (arg2, proc); t.arg1 = SCM_CDR (t.arg1); arg2 = SCM_CDR (arg2); @@ -2441,7 +2442,8 @@ dispatch: arg2 = SCM_CDAR (env); while (SCM_NIMP (arg2)) { - SCM_SETCDR (SCM_CAR (t.arg1) - 1L, SCM_CAR (arg2)); + SCM_SETCDR (SCM_PACK (SCM_UNPACK (SCM_CAR (t.arg1)) - 1L), + SCM_CAR (arg2)); t.arg1 = SCM_CDR (t.arg1); arg2 = SCM_CDR (arg2); }