Revert change #26185, which could have some unwanted side-effects.
Rafael Garcia-Suarez [Tue, 22 Nov 2005 11:29:03 +0000 (11:29 +0000)]
(lib/warnings.t had failures due to this patch.)
Moreover Dave Mitchell correctly pointed out that [perl #37722]
wasn't really a bug.
p4raw-link: @26185 on //depot/perl: 91cec4fb3b9ce703dab10db05e717127b2a9ed44

p4raw-id: //depot/perl@26190

pp_hot.c
t/op/tie.t

index 8502c1c..813b606 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -148,14 +148,11 @@ PP(pp_concat)
     dPOPTOPssrl;
     bool lbyte;
     STRLEN rlen;
-    const char *rpv;
-    bool rbyte;
+    const char *rpv = SvPV_const(right, rlen); /* mg_get(right) happens here */
+    const bool rbyte = !DO_UTF8(right);
     bool rcopied = FALSE;
 
     if (TARG == right && right != left) {
-       /* mg_get(right) may happen here ... */
-       rpv = SvPV_const(right, rlen);
-       rbyte = !DO_UTF8(right);
        right = sv_2mortal(newSVpvn(rpv, rlen));
        rpv = SvPV_const(right, rlen);  /* no point setting UTF-8 here */
        rcopied = TRUE;
@@ -182,11 +179,6 @@ PP(pp_concat)
            SvUTF8_off(TARG);
     }
 
-    /* or mg_get(right) may happen here */
-    if (!rcopied) {
-       rpv = SvPV_const(right, rlen);
-       rbyte = !DO_UTF8(right);
-    }
     if (lbyte != rbyte) {
        if (lbyte)
            sv_utf8_upgrade_nomg(TARG);
index 8cb4539..1fe37e1 100755 (executable)
@@ -578,10 +578,3 @@ tie $h, "main";
 print $h,"\n";
 EXPECT
 3.3
-########
-sub TIESCALAR { bless {} }
-sub FETCH { shift()->{i} ++ }
-tie $h, "main";
-print $h.$h;
-EXPECT
-01