summaryrefslogtreecommitdiff
path: root/libguile/eval.c
diff options
context:
space:
mode:
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2004-04-03 14:24:17 +0000
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2004-04-03 14:24:17 +0000
commitf998676709694b557f824ecec3d65642f4f7b8b7 (patch)
tree018ed87fb1d0bd6a207567d887c80d2d7d5beb85 /libguile/eval.c
parentfbc4223176b8dacf753a9076e3e1b4a160e93221 (diff)
downloadguile-f998676709694b557f824ecec3d65642f4f7b8b7.tar.gz
* eval.c (scm_lookupcar1, CEVAL): Use SCM_ILOCP instead of
comparison with SCM_ILOC00. In CEVAL, eliminate goto-label 'checkmacro'.
Diffstat (limited to 'libguile/eval.c')
-rw-r--r--libguile/eval.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/libguile/eval.c b/libguile/eval.c
index 62a5748b5..8f31c6dc8 100644
--- a/libguile/eval.c
+++ b/libguile/eval.c
@@ -666,7 +666,7 @@ scm_lookupcar1 (SCM vloc, SCM genv, int check)
var = SCM_CAR (vloc);
if (SCM_VARIABLEP (var))
return SCM_VARIABLE_LOC (var);
- if (SCM_ITAG7 (var) == SCM_ITAG7 (SCM_ILOC00))
+ if (SCM_ILOCP (var))
return scm_ilookup (var, genv);
/* We can't cope with anything else than variables and ilocs. When
a special form has been memoized (i.e. `let' into `#@let') we
@@ -3596,14 +3596,11 @@ dispatch:
}
- case SCM_BIT7 (SCM_ILOC00):
- proc = *scm_ilookup (SCM_CAR (x), env);
- goto checkmacro;
-
-
default:
if (SCM_VARIABLEP (SCM_CAR (x)))
proc = SCM_VARIABLE_REF (SCM_CAR (x));
+ else if (SCM_ILOCP (SCM_CAR (x)))
+ proc = *scm_ilookup (SCM_CAR (x), env);
else if (SCM_CONSP (SCM_CAR (x)))
proc = CEVAL (SCM_CAR (x), env);
else if (SCM_SYMBOLP (SCM_CAR (x)))
@@ -3679,7 +3676,6 @@ dispatch:
else
proc = SCM_CAR (x);
- checkmacro:
if (SCM_MACROP (proc))
goto handle_a_macro;
}