summaryrefslogtreecommitdiff
path: root/libguile/eval.h
diff options
context:
space:
mode:
authorMikael Djurfeldt <djurfeldt@nada.kth.se>1998-05-02 16:26:21 +0000
committerMikael Djurfeldt <djurfeldt@nada.kth.se>1998-05-02 16:26:21 +0000
commit680ed4a802c872a31720d0503a941e96c93c9495 (patch)
treec8d64538b3fff5cae60aeb608b6abc78d9cde482 /libguile/eval.h
parentc153090d62b57d818efe35e452d36c59152ab346 (diff)
downloadguile-680ed4a802c872a31720d0503a941e96c93c9495.tar.gz
* eval.c (SCM_CEVAL): Do more thorough argument checking. This
change makes the evaluator safer at the cost of evaluation speed. It handles the case when the user has added a non-immediate improper end of the application form, e.g., `(+ 0 . x)'. (Earlier only cases like `(+ 0 . 0)' were handled.) I've tried to minimize the extra cost as much as possible. The new code is enclosed in #ifdef CAUTIOUS regions. NOTE: This also fixes the problem with structs planted directly in the code (e.g. by a macro). This no longer causes segmentation fault. (Thanks to Eric Hanchrow.) * eval.c, eval.h (scm_eval_args, scm_deval_args): Take one extra arg `proc' in order to be able to throw errors; New argument checking code.
Diffstat (limited to 'libguile/eval.h')
-rw-r--r--libguile/eval.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/eval.h b/libguile/eval.h
index 9f218c07e..094afa319 100644
--- a/libguile/eval.h
+++ b/libguile/eval.h
@@ -134,8 +134,8 @@ extern SCM * scm_lookupcar SCM_P ((SCM vloc, SCM genv));
extern SCM scm_unmemocar SCM_P ((SCM form, SCM env));
extern SCM scm_unmemocopy SCM_P ((SCM form, SCM env));
extern SCM scm_eval_car SCM_P ((SCM pair, SCM env));
-extern SCM scm_eval_args SCM_P ((SCM i, SCM env));
-extern SCM scm_deval_args SCM_P ((SCM l, SCM env, SCM *lloc));
+extern SCM scm_eval_args SCM_P ((SCM i, SCM env, SCM proc));
+extern SCM scm_deval_args SCM_P ((SCM l, SCM env, SCM proc, SCM *lloc));
extern SCM scm_m_quote SCM_P ((SCM xorig, SCM env));
extern SCM scm_m_begin SCM_P ((SCM xorig, SCM env));
extern SCM scm_m_if SCM_P ((SCM xorig, SCM env));