Change 31205 by [EMAIL PROTECTED] on 2007/05/12 22:41:17

        Subject:  [PATCH] Disable !a&&b, !b||a optimalization when PL_madskills
        From:  Gerard Goossen <[EMAIL PROTECTED]>
        Date:    Tue May 8 16:09:17 2007 +0200
        Message-Id:  <[EMAIL PROTECTED]>

Affected files ...

... //depot/perl/op.c#939 edit

Differences ...

==== //depot/perl/op.c#939 (text) ====
Index: perl/op.c
--- perl/op.c#938~31204~        2007-05-12 15:40:05.000000000 -0700
+++ perl/op.c   2007-05-12 15:41:17.000000000 -0700
@@ -4240,7 +4240,8 @@
     /* optimize "!a && b" to "a || b", and "!a || b" to "a && b" */
     if (first->op_type == OP_NOT
        && (first->op_flags & OPf_SPECIAL)
-       && (first->op_flags & OPf_KIDS)) {
+       && (first->op_flags & OPf_KIDS)
+       && !PL_madskills) {
        if (type == OP_AND || type == OP_OR) {
            if (type == OP_AND)
                type = OP_OR;
@@ -4251,11 +4252,7 @@
            if (o->op_next)
                first->op_next = o->op_next;
            cUNOPo->op_first = NULL;
-#ifdef PERL_MAD
-           op_getmad(o,first,'O');
-#else
            op_free(o);
-#endif
        }
     }
     if (first->op_type == OP_CONST) {
End of Patch.

Reply via email to