In POPLOOP, if CxITERVAR(cx) is non-NULL, then so is itersave, and
Nicholas Clark [Sat, 26 Jan 2008 15:14:25 +0000 (15:14 +0000)]
itersave is a less complex expression for the C compiler.

p4raw-id: //depot/perl@33074

cop.h

diff --git a/cop.h b/cop.h
index b9ca6c3..48f9d5b 100644 (file)
--- a/cop.h
+++ b/cop.h
@@ -514,15 +514,12 @@ struct block_loop {
            SvREFCNT_dec(cx->blk_loop.state_u.lazysv.cur);              \
            SvREFCNT_dec(cx->blk_loop.state_u.lazysv.end);              \
        }                                                               \
-       if (CxITERVAR(cx)) {                                            \
+       if (cx->blk_loop.itersave) {                                    \
             if (SvPADMY(cx->blk_loop.itersave)) {                      \
                SV ** const s_v_p = CxITERVAR(cx);                      \
                sv_2mortal(*s_v_p);                                     \
                *s_v_p = cx->blk_loop.itersave;                         \
            }                                                           \
-           else {                                                      \
-               SvREFCNT_dec(cx->blk_loop.itersave);                    \
-           }                                                           \
        }                                                               \
        if (CxTYPE(cx) == CXt_LOOP_FOR)                                 \
            SvREFCNT_dec(cx->blk_loop.state_u.ary.ary);