Change 23198 by [EMAIL PROTECTED] on 2004/08/06 10:06:46
remove leaks associated with version object change #23190
Affected files ...
... //depot/perl/gv.c#205 edit
... //depot/perl/util.c#424 edit
Differences ...
==== //depot/perl/gv.c#205 (text) ====
Index: perl/gv.c
--- perl/gv.c#204~23190~ Tue Aug 3 23:19:27 2004
+++ perl/gv.c Fri Aug 6 03:06:46 2004
@@ -1071,9 +1071,9 @@
case '\026': /* $^V */
if (len == 1) {
SV *sv = GvSV(gv);
- sv = new_version(PL_patchlevel);
- SvREADONLY_on(sv);
- GvSV(gv) = sv;
+ GvSV(gv) = new_version(PL_patchlevel);
+ SvREADONLY_on(GvSV(gv));
+ SvREFCNT_dec(sv);
}
break;
}
==== //depot/perl/util.c#424 (text) ====
Index: perl/util.c
--- perl/util.c#423~23190~ Tue Aug 3 23:19:27 2004
+++ perl/util.c Fri Aug 6 03:06:46 2004
@@ -3887,6 +3887,7 @@
bool saw_under = 0;
SV* sv = newSVrv(rv, "version"); /* create an SV and upgrade the RV */
(void)sv_upgrade(sv, SVt_PVAV); /* needs to be an AV type */
+ AvREAL_on((AV*)sv);
/* pre-scan the imput string to check for decimals */
while ( *pos == '.' || *pos == '_' || isDIGIT(*pos) )
@@ -4010,6 +4011,7 @@
AV *av = (AV *)SvRV(ver);
SV* sv = newSVrv(rv, "version"); /* create an SV and upgrade the RV */
(void)sv_upgrade(sv, SVt_PVAV); /* needs to be an AV type */
+ AvREAL_on((AV*)sv);
for ( key = 0; key <= av_len(av); key++ )
{
I32 rev = SvIV(*av_fetch(av, key, FALSE));
End of Patch.