Continuing mopup for #6204.
[p5sagit/p5-mst-13.2.git] / op.c
diff --git a/op.c b/op.c
index affb597..d70f0d5 100644 (file)
--- a/op.c
+++ b/op.c
@@ -2646,12 +2646,13 @@ Perl_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
        }
        if (!squash) {
            if (to_utf && from_utf) {   /* only counting characters */
-               if (t == r || (tlen == rlen && memEQ(t, r, tlen)))
+               if (t == r ||
+                   (tlen == rlen && memEQ((char *)t, (char *)r, tlen)))
                    o->op_private |= OPpTRANS_IDENTICAL;
            }
            else {      /* straight latin-1 translation */
-               if (tlen == 4 && memEQ(t, "\0\377\303\277", 4) &&
-                   rlen == 4 && memEQ(r, "\0\377\303\277", 4))
+               if (tlen == 4 && memEQ((char *)t, "\0\377\303\277", 4) &&
+                   rlen == 4 && memEQ((char *)r, "\0\377\303\277", 4))
                    o->op_private |= OPpTRANS_IDENTICAL;
            }
        }
@@ -5339,6 +5340,7 @@ Perl_ck_rvconst(pTHX_ register OP *o)
 #ifdef USE_ITHREADS
            /* XXX hack: dependence on sizeof(PADOP) <= sizeof(SVOP) */
            kPADOP->op_padix = pad_alloc(OP_GV, SVs_PADTMP);
+           SvREFCNT_dec(PL_curpad[kPADOP->op_padix]);
            GvIN_PAD_on(gv);
            PL_curpad[kPADOP->op_padix] = SvREFCNT_inc(gv);
 #else