diff options
Diffstat (limited to 'run.c')
-rw-r--r-- | run.c | 17 |
1 files changed, 12 insertions, 5 deletions
@@ -16,13 +16,18 @@ * know. Run now! Hope is in speed!" --Gandalf */ +#ifdef PERL_OBJECT +#define CALLOP this->*op +#else +#define CALLOP *op +#endif int runops_standard(void) { dTHR; - while ( op = (*op->op_ppaddr)(ARGS) ) ; + while ( op = (CALLOP->op_ppaddr)(ARGS) ) ; TAINT_NOT; return 0; @@ -33,7 +38,9 @@ runops_standard(void) dEXT char **watchaddr = 0; dEXT char *watchok; +#ifndef PERL_OBJECT static void debprof _((OP*o)); +#endif #endif /* DEBUGGING */ @@ -56,7 +63,7 @@ runops_debug(void) DEBUG_t(debop(op)); DEBUG_P(debprof(op)); } - } while ( op = (*op->op_ppaddr)(ARGS) ); + } while ( op = (CALLOP->op_ppaddr)(ARGS) ); TAINT_NOT; return 0; @@ -105,15 +112,15 @@ watch(char **addr) #endif /* DEBUGGING */ } -#ifdef DEBUGGING -static void +STATIC void debprof(OP *o) { +#ifdef DEBUGGING if (!profiledata) New(000, profiledata, MAXO, U32); ++profiledata[o->op_type]; +#endif /* DEBUGGING */ } -#endif /* DEBUGGING */ void debprofdump(void) |