diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2003-01-26 17:42:42 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2003-01-27 20:38:21 +0000 |
commit | ee98a1d62d9164755faacfdf3fab9cd4e3607ed6 (patch) | |
tree | b10e8bd7ef440b32d377e73f6873828ccdbb3fe3 /cop.h | |
parent | b885210ee1978eaa367496754d209eb2c3de8222 (diff) | |
download | perl-ee98a1d62d9164755faacfdf3fab9cd4e3607ed6.tar.gz |
Introduce the PUSHSUB_DB macro, equivalent to PUSHSUB, but
without the lval context tweak. Used in OP_DBSTATE.
Subject: Re: [PATCH] Re: change #9754: 5 x slowdown for perl -d
Message-ID: <20030126174242.H16182@fdgroup.com>
p4raw-id: //depot/perl@18596
Diffstat (limited to 'cop.h')
-rw-r--r-- | cop.h | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -120,13 +120,23 @@ struct block_sub { PAD *oldcomppad; }; -#define PUSHSUB(cx) \ +/* base for the next two macros. Don't use directly */ +#define PUSHSUB_BASE(cx) \ cx->blk_sub.cv = cv; \ cx->blk_sub.olddepth = CvDEPTH(cv); \ - cx->blk_sub.hasargs = hasargs; \ + cx->blk_sub.hasargs = hasargs; + +#define PUSHSUB(cx) \ + PUSHSUB_BASE(cx) \ cx->blk_sub.lval = PL_op->op_private & \ (OPpLVAL_INTRO|OPpENTERSUB_INARGS); +/* variant for use by OP_DBSTATE, where op_private holds hint bits */ +#define PUSHSUB_DB(cx) \ + PUSHSUB_BASE(cx) \ + cx->blk_sub.lval = 0; + + #define PUSHFORMAT(cx) \ cx->blk_sub.cv = cv; \ cx->blk_sub.gv = gv; \ |