diff options
author | Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> | 2004-04-03 14:24:17 +0000 |
---|---|---|
committer | Dirk Herrmann <dirk@dirk-herrmanns-seiten.de> | 2004-04-03 14:24:17 +0000 |
commit | f998676709694b557f824ecec3d65642f4f7b8b7 (patch) | |
tree | 018ed87fb1d0bd6a207567d887c80d2d7d5beb85 /libguile/eval.c | |
parent | fbc4223176b8dacf753a9076e3e1b4a160e93221 (diff) | |
download | guile-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.c | 10 |
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; } |