summaryrefslogtreecommitdiff
path: root/cop.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2008-01-24 10:44:25 +0000
committerNicholas Clark <nick@ccl4.org>2008-01-24 10:44:25 +0000
commita28356daf92caa7f638e39190a3f2c5a3cd8acfe (patch)
tree5083feb034f3d90f3b53f7d28d883bbe0296a06e /cop.h
parent4b70616db4b88e90e04bbf6a612b803f6a4d8dc1 (diff)
downloadperl-a28356daf92caa7f638e39190a3f2c5a3cd8acfe.tar.gz
Split out foreach iterations of temporary lists on the stack to
CXt_LOOP_STACK. Don't use cx->blk_loop.iterary to store PL_curstack. p4raw-id: //depot/perl@33059
Diffstat (limited to 'cop.h')
-rw-r--r--cop.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/cop.h b/cop.h
index 15de02f516..91290024cd 100644
--- a/cop.h
+++ b/cop.h
@@ -529,7 +529,7 @@ struct block_loop {
SvREFCNT_dec(cx->blk_loop.itersave); \
} \
} \
- if (cx->blk_loop.iterary && cx->blk_loop.iterary != PL_curstack)\
+ if ((CxTYPE(cx) != CXt_LOOP_STACK) && cx->blk_loop.iterary) \
SvREFCNT_dec(cx->blk_loop.iterary);
/* given/when context */
@@ -681,7 +681,8 @@ struct context {
#define CXt_GIVEN 7
#define CXt_LOOP_PLAIN 8
#define CXt_LOOP_FOR 9
-#define CXt_LOOP_RES1 10
+/* Foreach on a temporary list on the stack */
+#define CXt_LOOP_STACK 10
#define CXt_LOOP_RES2 11
/* private flags for CXt_SUB and CXt_NULL