summaryrefslogtreecommitdiff
path: root/libguile/eval.i.c
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2009-10-02 10:26:30 +0200
committerLudovic Courtès <ludo@gnu.org>2009-10-02 10:28:51 +0200
commit5b2f2c75527c5899648eec46c7eca0f57420ff3b (patch)
tree0244084cae3f4d0c88fb99f5bf971ee9d6036398 /libguile/eval.i.c
parent187a43907f75265b504116aa1e96b40d57f4aa88 (diff)
downloadguile-5b2f2c75527c5899648eec46c7eca0f57420ff3b.tar.gz
Fix the argument list of gsubr stack frames.
This fixes a bug introduced in e20d7001c3f7150400169fecb0bf0eefdf122fe2 and reported by Neil. * libguile/eval.i.c (CEVAL)[DEVAL]: Don't duplicate ARG1 in `debug.info->a.args' for gsubr stack frames. (scm_apply): Likewise. * test-suite/tests/eval.test ("stacks")["arguments of a gsubr stack frame"]: New test.
Diffstat (limited to 'libguile/eval.i.c')
-rw-r--r--libguile/eval.i.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/eval.i.c b/libguile/eval.i.c
index 25abf6cb9..1d1c1807f 100644
--- a/libguile/eval.i.c
+++ b/libguile/eval.i.c
@@ -1259,7 +1259,7 @@ dispatch:
RETURN (SCM_SMOB_APPLY_1 (proc, arg1));
case scm_tc7_gsubr:
#ifdef DEVAL
- debug.info->a.args = scm_cons (arg1, debug.info->a.args);
+ debug.info->a.args = debug.info->a.args;
debug.info->a.proc = proc;
#endif
RETURN (scm_i_gsubr_apply (proc, arg1, SCM_UNDEFINED));
@@ -1896,7 +1896,7 @@ tail:
#ifdef DEVAL
args = (SCM_UNBNDP(arg1) ? SCM_EOL : debug.vect[0].a.args);
debug.vect[0].a.proc = proc;
- debug.vect[0].a.args = scm_cons (arg1, args);
+ debug.vect[0].a.args = args;
#else
args = (SCM_UNBNDP(arg1) ? SCM_EOL : scm_cons (arg1, args));
#endif