Change 34038 by [EMAIL PROTECTED] on 2008/06/09 18:18:57
Subject: Re: [PATCH] More COW lvalues
From: Reini Urban <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
Date: Mon, 09 Jun 2008 17:15:41 +0200
Affected files ...
... //depot/perl/regcomp.c#655 edit
... //depot/perl/sv.h#348 edit
Differences ...
==== //depot/perl/regcomp.c#655 (text) ====
Index: perl/regcomp.c
--- perl/regcomp.c#654~33853~ 2008-05-18 05:07:19.000000000 -0700
+++ perl/regcomp.c 2008-06-09 11:18:57.000000000 -0700
@@ -5669,13 +5669,17 @@
pv = (I32*)SvGROW(sv_dat, SvCUR(sv_dat) +
sizeof(I32)+1);
SvCUR_set(sv_dat, SvCUR(sv_dat) + sizeof(I32));
pv[count] = RExC_npar;
- SvIVX(sv_dat)++;
+#ifdef PERL_DEBUG_COW
+ ((XPVIV*) SvANY(sv_dat))->xiv_iv++;
+#else
+ SvIVX(sv_dat)++;
+#endif
}
} else {
(void)SvUPGRADE(sv_dat,SVt_PVNV);
sv_setpvn(sv_dat, (char *)&(RExC_npar),
sizeof(I32));
SvIOK_on(sv_dat);
- SvIVX(sv_dat)= 1;
+ SvIV_set(sv_dat, 1);
}
#ifdef DEBUGGING
if (!av_store(RExC_paren_name_list, RExC_npar,
SvREFCNT_inc(svname)))
==== //depot/perl/sv.h#348 (text) ====
Index: perl/sv.h
--- perl/sv.h#347~34031~ 2008-06-08 08:41:11.000000000 -0700
+++ perl/sv.h 2008-06-09 11:18:57.000000000 -0700
@@ -1232,7 +1232,7 @@
(((XPV*) SvANY(sv))->xpv_len = (val)); } STMT_END
#define SvEND_set(sv, val) \
STMT_START { assert(SvTYPE(sv) >= SVt_PV); \
- (SvCUR(sv) = (val) - SvPVX(sv)); } STMT_END
+ SvCUR_set(sv, (val) - SvPVX(sv)); } STMT_END
#define SvPV_renew(sv,n) \
STMT_START { SvLEN_set(sv, n); \
End of Patch.