summaryrefslogtreecommitdiff
path: root/libguile/eval.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-02-08 13:33:21 +0100
committerAndy Wingo <wingo@pobox.com>2010-02-08 13:34:26 +0100
commitbabfc7b2c3fce452aa12fed8d89cd3fbc81e8cc8 (patch)
tree937751b8769b31d905efa4d541bcf56f907ab22c /libguile/eval.c
parent1d1cae0e2e063d9a36e7d600f87cf3d6eaf940f3 (diff)
downloadguile-babfc7b2c3fce452aa12fed8d89cd3fbc81e8cc8.tar.gz
eval.c uses scm_i_call_with_current_continuation
* libguile/continuations.h * libguile/continuations.c (scm_i_call_with_current_continuation): New internal function. Not exported because I'm not sure whether or not this should have a continuation barrier in the future. Uses a hand-coded VM procedure. * libguile/eval.c (eval): Use scm_i_call_with_current_continuation.
Diffstat (limited to 'libguile/eval.c')
-rw-r--r--libguile/eval.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/libguile/eval.c b/libguile/eval.c
index 65103a1b2..f6b42c5a8 100644
--- a/libguile/eval.c
+++ b/libguile/eval.c
@@ -295,19 +295,7 @@ eval (SCM x, SCM env)
}
case SCM_M_CONT:
- {
- int first;
- SCM val = scm_make_continuation (&first);
-
- if (!first)
- return val;
- else
- {
- proc = eval (mx, env);
- args = scm_list_1 (val);
- goto apply_proc;
- }
- }
+ return scm_i_call_with_current_continuation (eval (mx, env));
case SCM_M_CALL_WITH_VALUES:
{