Change 33146 by [EMAIL PROTECTED] on 2008/01/31 10:45:59

        Integrate:
        [ 32810]
        Fixes to get MAD working after change 32804, and some newSVpvn_utf8()s
        I missed becase (silly Nick) the grep for plausible files was done on
        the 5.8.x tree.

Affected files ...

... //depot/maint-5.10/perl/dump.c#3 integrate

Differences ...

==== //depot/maint-5.10/perl/dump.c#3 (text) ====
Index: perl/dump.c
--- perl/dump.c#2~33130~        2008-01-30 09:34:11.000000000 -0800
+++ perl/dump.c 2008-01-31 02:45:59.000000000 -0800
@@ -2452,8 +2452,9 @@
     Perl_xmldump_indent(aTHX_ level, file, "<pmop \n");
     level++;
     if (PM_GETRE(pm)) {
-       const regexp *const r = PM_GETRE(pm);
-       SV * const tmpsv = newSVpvn(RX_PRECOMP(r),r->prelen);
+       REGEXP *const r = PM_GETRE(pm);
+       /* FIXME ORANGE - REGEXP can be 8 bit, so this is sometimes buggy:  */
+       SV * const tmpsv = newSVpvn(RX_PRECOMP(r),RX_PRELEN(r));
        SvUTF8_on(tmpsv);
        Perl_xmldump_indent(aTHX_ level, file, "pre=\"%s\"\n",
             SvPVX(tmpsv));
@@ -2463,7 +2464,7 @@
     }
     else
        Perl_xmldump_indent(aTHX_ level, file, "pre=\"\" when=\"RUN\"\n");
-    if (pm->op_pmflags || (PM_GETRE(pm) && PM_GETRE(pm)->check_substr)) {
+    if (pm->op_pmflags || (PM_GETRE(pm) && RX_CHECK_SUBSTR(PM_GETRE(pm)))) {
        SV * const tmpsv = pm_description(pm);
        Perl_xmldump_indent(aTHX_ level, file, "pmflags=\"%s\"\n", SvCUR(tmpsv) 
? SvPVX(tmpsv) + 1 : "");
        SvREFCNT_dec(tmpsv);
@@ -2739,12 +2740,10 @@
        S_xmldump_attr(aTHX_ level, file, "padix=\"%" IVdf "\"", 
(IV)cPADOPo->op_padix);
 #else
        if (cSVOPo->op_sv) {
-           SV * const tmpsv1 = newSV(0);
-           SV * const tmpsv2 = newSVpvn("",0);
+           SV * const tmpsv1 = newSVpvn_utf8(NULL, 0, TRUE);
+           SV * const tmpsv2 = newSVpvn_utf8("", 0, TRUE);
            char *s;
            STRLEN len;
-           SvUTF8_on(tmpsv1);
-           SvUTF8_on(tmpsv2);
            ENTER;
            SAVEFREESV(tmpsv1);
            SAVEFREESV(tmpsv2);
@@ -2830,10 +2829,9 @@
 
     if (PL_madskills && o->op_madprop) {
        char prevkey = '\0';
-       SV * const tmpsv = newSVpvn("", 0);
+       SV * const tmpsv = newSVpvn_utf8("", 0, TRUE);
        const MADPROP* mp = o->op_madprop;
 
-       sv_utf8_upgrade(tmpsv);
        if (!contents) {
            contents = 1;
            PerlIO_printf(file, ">\n");
End of Patch.

Reply via email to