From 9b07e212d55df62a37b47ec781f9a16ebe05f74a Mon Sep 17 00:00:00 2001 From: Mikael Djurfeldt Date: Sat, 21 Nov 1998 17:00:44 +0000 Subject: [PATCH] * eval.c (SCM_CEVAL): Jump to badfun if trying to apply a struct which isn't an operator. (SCM_APPLY): Ditto, but jump to badproc. --- libguile/eval.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/libguile/eval.c b/libguile/eval.c index 31014b3e4..77e639847 100644 --- a/libguile/eval.c +++ b/libguile/eval.c @@ -2145,7 +2145,9 @@ evapply: env = EXTEND_ENV (SCM_CAR (x), SCM_EOL, SCM_ENV (proc)); goto cdrxbegin; case scm_tcs_cons_gloc: - if (SCM_I_OPERATORP (proc)) + if (!SCM_I_OPERATORP (proc)) + goto badfun; + else { x = (SCM_I_ENTITYP (proc) ? SCM_ENTITY_PROC_0 (proc) @@ -2290,7 +2292,9 @@ evapply: case scm_tc7_contin: scm_call_continuation (proc, t.arg1); case scm_tcs_cons_gloc: - if (SCM_I_OPERATORP (proc)) + if (!SCM_I_OPERATORP (proc)) + goto badfun; + else { x = (SCM_I_ENTITYP (proc) ? SCM_ENTITY_PROC_1 (proc) @@ -2389,7 +2393,9 @@ evapply: goto evap3; */ #endif case scm_tcs_cons_gloc: - if (SCM_I_OPERATORP (proc)) + if (!SCM_I_OPERATORP (proc)) + goto badfun; + else { x = (SCM_I_ENTITYP (proc) ? SCM_ENTITY_PROC_2 (proc) @@ -2562,7 +2568,9 @@ evapply: goto cdrxbegin; #endif /* DEVAL */ case scm_tcs_cons_gloc: - if (SCM_I_OPERATORP (proc)) + if (!SCM_I_OPERATORP (proc)) + goto badfun; + else { SCM p = (SCM_I_ENTITYP (proc) ? SCM_ENTITY_PROC_3 (proc) @@ -2935,7 +2943,9 @@ tail: goto tail; #endif case scm_tcs_cons_gloc: - if (SCM_I_OPERATORP (proc)) + if (!SCM_I_OPERATORP (proc)) + goto badproc; + else { #ifdef DEVAL args = (SCM_UNBNDP(arg1) ? SCM_EOL : debug.vect[0].a.args);