Change 33011 by [EMAIL PROTECTED] on 2008/01/20 17:39:22

        Fix (probable) bug-by-inspection -  CxREALEVAL(), CxTRYBLOCK(),
        CxFOREACH() and CxFOREACHDEF() should all be masking against
        CXTYPEMASK rather than their own type number.

Affected files ...

... //depot/perl/cop.h#148 edit

Differences ...

==== //depot/perl/cop.h#148 (text) ====
Index: perl/cop.h
--- perl/cop.h#147~33010~       2008-01-20 05:28:10.000000000 -0800
+++ perl/cop.h  2008-01-20 09:39:22.000000000 -0800
@@ -677,13 +677,13 @@
 #define CxTYPE(c)      ((c)->cx_type & CXTYPEMASK)
 #define CxMULTICALL(c) (((c)->cx_type & CXp_MULTICALL)                 \
                         == CXp_MULTICALL)
-#define CxREALEVAL(c)  (((c)->cx_type & (CXt_EVAL|CXp_REAL))           \
+#define CxREALEVAL(c)  (((c)->cx_type & (CXTYPEMASK|CXp_REAL))         \
                         == (CXt_EVAL|CXp_REAL))
-#define CxTRYBLOCK(c)  (((c)->cx_type & (CXt_EVAL|CXp_TRYBLOCK))       \
+#define CxTRYBLOCK(c)  (((c)->cx_type & (CXTYPEMASK|CXp_TRYBLOCK))     \
                         == (CXt_EVAL|CXp_TRYBLOCK))
-#define CxFOREACH(c)   (((c)->cx_type & (CXt_LOOP|CXp_FOREACH))        \
+#define CxFOREACH(c)   (((c)->cx_type & (CXTYPEMASK|CXp_FOREACH))      \
                          == (CXt_LOOP|CXp_FOREACH))
-#define CxFOREACHDEF(c)        (((c)->cx_type & 
(CXt_LOOP|CXp_FOREACH|CXp_FOR_DEF))\
+#define CxFOREACHDEF(c)        (((c)->cx_type & 
(CXTYPEMASK|CXp_FOREACH|CXp_FOR_DEF))\
                         == (CXt_LOOP|CXp_FOREACH|CXp_FOR_DEF))
 
 #define CXINC (cxstack_ix < cxstack_max ? ++cxstack_ix : (cxstack_ix = 
cxinc()))
End of Patch.

Reply via email to