summaryrefslogtreecommitdiff
path: root/cop.h
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2003-01-26 17:42:42 +0000
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2003-01-27 20:38:21 +0000
commitee98a1d62d9164755faacfdf3fab9cd4e3607ed6 (patch)
treeb10e8bd7ef440b32d377e73f6873828ccdbb3fe3 /cop.h
parentb885210ee1978eaa367496754d209eb2c3de8222 (diff)
downloadperl-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.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/cop.h b/cop.h
index 870225ca5d..de8003356a 100644
--- a/cop.h
+++ b/cop.h
@@ -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; \