On 3 May 2004, at 13:27, Leopold Toetsch wrote:
because the stacktop is not set! so what Parrot_runcode should do is in
{ if(!parrot->stacktop) { set_stacktop
When you call C<app_x_run_plugin> from different locations, this wouldn't work. So the correct sequence is:
app_x_run_plugin(...) { void stk; Parrot_init_stacktop(interp, &stk); Parrot_call(interp, the_sub, ...); }
Arthur
Not if you clear the stacktop if you set it in Parrot_call, I thought this was obvious so I left it out, but here we go.
parrot_call {
if(stacktop) {
parrot_call_real
} else {
set_stacktop
parrot_call_real
unset_stacktop
}
}