summaryrefslogtreecommitdiff
path: root/run.c
diff options
context:
space:
mode:
Diffstat (limited to 'run.c')
-rw-r--r--run.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/run.c b/run.c
index afb7c391e2..d7133c7ba7 100644
--- a/run.c
+++ b/run.c
@@ -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)