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.