#define restartop (curinterp->Irestartop)
#define rightgv (curinterp->Irightgv)
#define rs (curinterp->Irs)
-#define runlevel (curinterp->Irunlevel)
#define sawampersand (curinterp->Isawampersand)
#define sawstudy (curinterp->Isawstudy)
#define sawvec (curinterp->Isawvec)
#define Irestartop restartop
#define Irightgv rightgv
#define Irs rs
-#define Irunlevel runlevel
#define Isawampersand sawampersand
#define Isawstudy sawstudy
#define Isawvec sawvec
#define restartop Perl_restartop
#define rightgv Perl_rightgv
#define rs Perl_rs
-#define runlevel Perl_runlevel
#define sawampersand Perl_sawampersand
#define sawstudy Perl_sawstudy
#define sawvec Perl_sawvec
restartop
rightgv
rs
-runlevel
sawampersand
sawstudy
sawvec
IEXT I32 Icxstack_max IINIT(128);
IEXT JMPENV Istart_env; /* empty startup sigjmp() environment */
IEXT JMPENV * Itop_env; /* ptr. to current sigjmp() environment */
-IEXT I32 Irunlevel;
/* stack stuff */
IEXT AV * Icurstack; /* THE STACK */
{
dTHR;
int ret;
- I32 oldrunlevel = runlevel;
OP *oldop = op;
dJMPENV;
op = o;
#ifdef DEBUGGING
assert(CATCH_GET == TRUE);
- DEBUG_l(deb("(Setting up local jumplevel, runlevel = %ld)\n", (long)runlevel+1));
+ DEBUG_l(deb("Setting up local jumplevel %p, was %p\n", &cur_env, top_env));
#endif
JMPENV_PUSH(ret);
switch (ret) {
default: /* topmost level handles it */
JMPENV_POP;
- runlevel = oldrunlevel;
op = oldop;
JMPENV_JUMP(ret);
/* NOTREACHED */
break;
}
JMPENV_POP;
- runlevel = oldrunlevel;
op = oldop;
return Nullop;
}
int
runops_standard() {
dTHR;
- SAVEI32(runlevel);
- runlevel++;
while ( op = (*op->op_ppaddr)(ARGS) ) ;
return 0;
}
- SAVEI32(runlevel);
- runlevel++;
-
do {
if (debug) {
if (watchaddr != 0 && *watchaddr != watchok)
AV * Tcurstack;
AV * Tmainstack;
JMPENV * Ttop_env;
- I32 Trunlevel;
/* XXX Sort stuff, firstgv, secongv and so on? */
#undef start_env
#undef toptarget
#undef top_env
-#undef runlevel
#undef in_eval
#undef restartop
#undef delaymagic
#define localizing (thr->Tlocalizing)
#define top_env (thr->Ttop_env)
-#define runlevel (thr->Trunlevel)
#define start_env (thr->Tstart_env)
#else
dTHR;
va_list args;
char *message;
- I32 oldrunlevel = runlevel;
int was_in_eval = in_eval;
HV *stash;
GV *gv;
restartop = die_where(message);
#ifdef USE_THREADS
DEBUG_L(PerlIO_printf(PerlIO_stderr(),
- "%p: die: restartop = %p, was_in_eval = %d, oldrunlevel = %d\n",
- thr, restartop, was_in_eval, oldrunlevel));
+ "%p: die: restartop = %p, was_in_eval = %d, top_env = %p\n",
+ thr, restartop, was_in_eval, top_env));
#endif /* USE_THREADS */
- if ((!restartop && was_in_eval) || oldrunlevel > 1)
+ if ((!restartop && was_in_eval) || top_env->je_prev)
JMPENV_JUMP(3);
return restartop;
}
start_env.je_mustcatch = TRUE;
top_env = &start_env;
- runlevel = 0; /* Let entering sub do increment */
-
in_eval = FALSE;
restartop = 0;