readd missing perldelta.pod changes from changes#6339,6376
[p5sagit/p5-mst-13.2.git] / sv.c
diff --git a/sv.c b/sv.c
index df2dce6..6ee91be 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -2659,7 +2659,7 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr)
                char *name = GvNAME(sstr);
                STRLEN len = GvNAMELEN(sstr);
                sv_upgrade(dstr, SVt_PVGV);
-               sv_magic(dstr, dstr, '*', name, len);
+               sv_magic(dstr, dstr, '*', Nullch, 0);
                GvSTASH(dstr) = (HV*)SvREFCNT_inc(GvSTASH(sstr));
                GvNAME(dstr) = savepvn(name, len);
                GvNAMELEN(dstr) = len;
@@ -2768,7 +2768,7 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr)
                                if(const_sv)
                                    const_changed = sv_cmp(const_sv, 
                                           op_const_sv(CvSTART((CV*)sref), 
-                                                      Nullcv));
+                                                      (CV*)sref));
                                /* ahem, death to those who redefine
                                 * active sort subs */
                                if (PL_curstackinfo->si_type == PERLSI_SORT &&
@@ -2776,7 +2776,7 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr)
                                    Perl_croak(aTHX_ 
                                    "Can't redefine active sort subroutine %s",
                                          GvENAME((GV*)dstr));
-                               if ((const_changed || const_sv) && ckWARN(WARN_REDEFINE))
+                               if ((const_changed && const_sv) || ckWARN(WARN_REDEFINE))
                                    Perl_warner(aTHX_ WARN_REDEFINE, const_sv ? 
                                             "Constant subroutine %s redefined"
                                             : "Subroutine %s redefined", 
@@ -6133,6 +6133,8 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
            /* INTEGERS */
 
        case 'p':
+           if (alt)
+               goto unknown;
            if (args)
                uv = PTR2UV(va_arg(*args, void*));
            else
@@ -6429,7 +6431,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
                }
            }
            else if (svix < svmax)
-               sv_setuv(svargs[svix++], (UV)i);
+               sv_setuv_mg(svargs[svix++], (UV)i);
            continue;   /* not "break" */
 
            /* UNKNOWN */