core: Set procedure in stack frame.
* src/mes.c (eval_apply): Set procedure in stack frame.
This commit is contained in:
parent
c2c361bf1a
commit
a233287c07
10
src/mes.c
10
src/mes.c
|
@ -691,7 +691,7 @@ gc_push_frame () ///((internal))
|
||||||
{
|
{
|
||||||
if (g_stack < 5)
|
if (g_stack < 5)
|
||||||
assert (!"STACK FULL");
|
assert (!"STACK FULL");
|
||||||
g_stack_array[--g_stack] = m0;
|
g_stack_array[--g_stack] = cell_f;
|
||||||
g_stack_array[--g_stack] = r0;
|
g_stack_array[--g_stack] = r0;
|
||||||
g_stack_array[--g_stack] = r1;
|
g_stack_array[--g_stack] = r1;
|
||||||
g_stack_array[--g_stack] = r2;
|
g_stack_array[--g_stack] = r2;
|
||||||
|
@ -932,7 +932,7 @@ call_lambda (SCM e, SCM x, SCM aa, SCM a) ///((internal))
|
||||||
SCM
|
SCM
|
||||||
make_closure_ (SCM args, SCM body, SCM a) ///((internal))
|
make_closure_ (SCM args, SCM body, SCM a) ///((internal))
|
||||||
{
|
{
|
||||||
return make_cell__ (TCLOSURE, 0, cons (cons (cell_circular, a), cons (args, body)));
|
return make_cell__ (TCLOSURE, cell_f, cons (cons (cell_circular, a), cons (args, body)));
|
||||||
}
|
}
|
||||||
|
|
||||||
SCM
|
SCM
|
||||||
|
@ -972,10 +972,7 @@ push_cc (SCM p1, SCM p2, SCM a, SCM c) ///((internal))
|
||||||
r2 = p2;
|
r2 = p2;
|
||||||
gc_push_frame ();
|
gc_push_frame ();
|
||||||
r1 = p1;
|
r1 = p1;
|
||||||
// if (TYPE (a) == TPAIR)
|
r0 = a;
|
||||||
// r0 = module_clone_locals (r0, a);
|
|
||||||
// else
|
|
||||||
r0 = a;
|
|
||||||
r3 = x;
|
r3 = x;
|
||||||
return cell_unspecified;
|
return cell_unspecified;
|
||||||
}
|
}
|
||||||
|
@ -1156,6 +1153,7 @@ eval_apply ()
|
||||||
goto vm_return;
|
goto vm_return;
|
||||||
|
|
||||||
apply:
|
apply:
|
||||||
|
g_stack_array[g_stack+FRAME_PROCEDURE] = CAR (r1);
|
||||||
t = TYPE (CAR (r1));
|
t = TYPE (CAR (r1));
|
||||||
if (t == TFUNCTION)
|
if (t == TFUNCTION)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue