difforig DevelOpProf-0.2 diff -u DevelOpProf-0.2/OpProf.xs.orig --- DevelOpProf-0.2/OpProf.xs.orig 1998-08-13 10:53:41.000000000 +0000 +++ DevelOpProf-0.2/OpProf.xs 2008-05-25 15:21:08.453125000 +0000 @@ -10,25 +10,20 @@ #include "perl.h" #include "XSUB.h" -#ifdef PERL_OBJECT -#define CALLOP this->*PL_op -#else -#define CALLOP *PL_op -#endif - static int profiling = 0; static unsigned long *op_count; -static int runops_opprof(void) -{ - dTHR; - - do { - if (profiling) - op_count[PL_op->op_type]++; - } while (PL_op = (CALLOP->op_ppaddr)(ARGS)); - TAINT_NOT; - return 0; +static int +runops_opprof(pTHX) { + dTHR; + do { + PERL_ASYNC_CHECK(); + if (profiling) + op_count[PL_op->op_type]++; + } while ((PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX))); + + TAINT_NOT; + return 0; } MODULE = Devel::OpProf PACKAGE = Devel::OpProf