sigaction test condition tweakage.
[p5sagit/p5-mst-13.2.git] / op.c
diff --git a/op.c b/op.c
index f721f06..64914ea 100644 (file)
--- a/op.c
+++ b/op.c
@@ -843,29 +843,6 @@ S_op_clear(pTHX_ OP *o)
     case OP_MATCH:
     case OP_QR:
 clear_pmop:
-       {
-           HV *pmstash = PmopSTASH(cPMOPo);
-           if (pmstash) {
-               PMOP *pmop = HvPMROOT(pmstash);
-               PMOP *lastpmop = NULL;
-               while (pmop) {
-                   if (cPMOPo == pmop) {
-                       if (lastpmop)
-                           lastpmop->op_pmnext = pmop->op_pmnext;
-                       else
-                           HvPMROOT(pmstash) = pmop->op_pmnext;
-                       break;
-                   }
-                   lastpmop = pmop;
-                   pmop = pmop->op_pmnext;
-               }
-#ifdef USE_ITHREADS
-               Safefree(PmopSTASHPV(cPMOPo));
-#else
-               /* NOTE: PMOP.op_pmstash is not refcounted */
-#endif
-           }
-       }
        cPMOPo->op_pmreplroot = Nullop;
        ReREFCNT_dec(cPMOPo->op_pmregexp);
        cPMOPo->op_pmregexp = (REGEXP*)NULL;
@@ -2895,11 +2872,8 @@ Perl_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
                }
            }
        }
-       if (!del && (rlen > 0xff || tlen > 0xff)) {
-           if (j >= rlen)
-               j = rlen - 1;
-           else
-               cPVOPo->op_pv = (char*)Renew(tbl, 0x101+rlen-j, short);
+       if (!del && rlen >= j) {
+           cPVOPo->op_pv = (char*)Renew(tbl, 0x101+rlen-j, short);
            tbl[0x100] = rlen - j;
            for (i=0; i < rlen - j; i++)
                tbl[0x101+i] = r[j+i];
@@ -2958,7 +2932,6 @@ Perl_newPMOP(pTHX_ I32 type, I32 flags)
     if (type != OP_TRANS && PL_curstash) {
        pmop->op_pmnext = HvPMROOT(PL_curstash);
        HvPMROOT(PL_curstash) = pmop;
-       PmopSTASH_set(pmop,PL_curstash);
     }
 
     return (OP*)pmop;