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.

Reply via email to