In Perl_sv_setsv_flags, swap the default in the type based switch to
Nicholas Clark [Mon, 27 Feb 2006 21:41:58 +0000 (21:41 +0000)]
the "Bizarre copy" failure case.

p4raw-id: //depot/perl@27350

sv.c

diff --git a/sv.c b/sv.c
index af907c1..44cb50a 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -3461,10 +3461,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dstr, register SV *sstr, I32 flags)
        if (dtype < SVt_PVNV)
            sv_upgrade(dstr, SVt_PVNV);
        break;
-    case SVt_PVAV:
-    case SVt_PVHV:
-    case SVt_PVCV:
-    case SVt_PVIO:
+    default:
        {
        const char * const type = sv_reftype(sstr,0);
        if (PL_op)
@@ -3481,7 +3478,9 @@ Perl_sv_setsv_flags(pTHX_ SV *dstr, register SV *sstr, I32 flags)
        }
        /*FALLTHROUGH*/
 
-    default:
+    case SVt_PVMG:
+    case SVt_PVLV:
+    case SVt_PVBM:
        if (SvGMAGICAL(sstr) && (flags & SV_GMAGIC)) {
            mg_get(sstr);
            if ((int)SvTYPE(sstr) != stype) {