summaryrefslogtreecommitdiff
path: root/cop.h
diff options
context:
space:
mode:
authorRobin Houston <robin@cpan.org>2005-11-08 19:02:34 +0000
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2005-11-09 09:15:04 +0000
commit82f35e8b14e93ac697812d1b28d2e79e1ad82d84 (patch)
tree187ce522aca502f3e424ce2ff640ed2ae0d355a6 /cop.h
parent9fcbb300ff0020e9c959238b23201b62e75039f8 (diff)
downloadperl-82f35e8b14e93ac697812d1b28d2e79e1ad82d84.tar.gz
Re: [perl #32383] DProf breaks List::Util::shuffle
Message-ID: <20051108190234.GA25953@rpc142.cs.man.ac.uk> p4raw-id: //depot/perl@26054
Diffstat (limited to 'cop.h')
-rw-r--r--cop.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/cop.h b/cop.h
index 47c2375b7b..618da4dea2 100644
--- a/cop.h
+++ b/cop.h
@@ -734,13 +734,15 @@ See L<perlcall/Lightweight Callbacks>.
#define dMULTICALL \
SV **newsp; /* set by POPBLOCK */ \
PERL_CONTEXT *cx; \
- CV *cv; \
+ CV *multicall_cv; \
OP *multicall_cop; \
bool multicall_oldcatch; \
U8 hasargs = 0 /* used by PUSHSUB */
-#define PUSH_MULTICALL \
+#define PUSH_MULTICALL(the_cv) \
STMT_START { \
+ CV *_nOnclAshIngNamE_ = the_cv; \
+ CV *cv = _nOnclAshIngNamE_; \
AV* padlist = CvPADLIST(cv); \
ENTER; \
multicall_oldcatch = CATCH_GET; \
@@ -754,6 +756,7 @@ See L<perlcall/Lightweight Callbacks>.
} \
SAVECOMPPAD(); \
PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv)); \
+ multicall_cv = cv; \
multicall_cop = CvSTART(cv); \
} STMT_END
@@ -765,8 +768,8 @@ See L<perlcall/Lightweight Callbacks>.
#define POP_MULTICALL \
STMT_START { \
- LEAVESUB(cv); \
- CvDEPTH(cv)--; \
+ LEAVESUB(multicall_cv); \
+ CvDEPTH(multicall_cv)--; \
POPBLOCK(cx,PL_curpm); \
CATCH_SET(multicall_oldcatch); \
LEAVE; \