1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-01 04:10:18 +02:00

fix bug in subr-call and smob-call

* libguile/vm-i-system.c (subr-call, smob-call): Unlike the previous
  situation, in which a call to a subr or a smob didn't actually build a
  frame, we no longer need to explicitly pop the procedure and its
  arguments. Indeed the procedure and its arguments must remain on the
  stack, for hooks and ticks and such always to see frames with valid
  procedures. Two lines out, two bugs less, and faster to boot.
This commit is contained in:
Andy Wingo 2010-01-09 21:48:16 +01:00
parent 37e9bc8ae4
commit fc7648637b

View file

@ -887,7 +887,6 @@ VM_DEFINE_INSTRUCTION (80, subr_call, "subr-call", 1, -1, -1)
}
NULLSTACK_FOR_NONLOCAL_EXIT ();
DROPN (nargs + 1); /* drop args and procedure */
if (SCM_UNLIKELY (SCM_VALUESP (ret)))
{
@ -935,7 +934,6 @@ VM_DEFINE_INSTRUCTION (81, smob_call, "smob-call", 1, -1, -1)
}
NULLSTACK_FOR_NONLOCAL_EXIT ();
DROPN (nargs + 1); /* drop args and procedure */
if (SCM_UNLIKELY (SCM_VALUESP (ret)))
{