diff options
Diffstat (limited to 'libguile/symbols.c')
-rw-r--r-- | libguile/symbols.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libguile/symbols.c b/libguile/symbols.c index 6fe45589d..b9b1b8c85 100644 --- a/libguile/symbols.c +++ b/libguile/symbols.c @@ -48,6 +48,7 @@ #include "libguile/_scm.h" #include "libguile/chars.h" #include "libguile/eval.h" +#include "libguile/smob.h" #include "libguile/variable.h" #include "libguile/alist.h" #include "libguile/fluids.h" @@ -112,10 +113,9 @@ scm_sym2vcell (SCM sym, SCM thunk, SCM definep) { SCM var; - if (SCM_TYP7 (thunk) == scm_tc7_cclo - && SCM_TYP7 (SCM_CCLO_SUBR (thunk)) == scm_tc7_subr_3) + if (SCM_EVAL_CLOSURE_P (thunk)) /* Bypass evaluator in the standard case. */ - var = SCM_SUBRF (SCM_CCLO_SUBR (thunk)) (thunk, sym, definep); + var = scm_eval_closure_lookup (thunk, sym, definep); else var = scm_apply (thunk, sym, scm_cons (definep, scm_listofnull)); |