Plug a memory leak (noticed by Yves)
[p5sagit/p5-mst-13.2.git] / av.c
diff --git a/av.c b/av.c
index c6677a9..9361e28 100644 (file)
--- a/av.c
+++ b/av.c
@@ -362,9 +362,7 @@ Creates a new AV.  The reference count is set to 1.
 AV *
 Perl_newAV(pTHX)
 {
-    register AV * const av = (AV*)newSV(0);
-
-    sv_upgrade((SV *)av, SVt_PVAV);
+    register AV * const av = (AV*)newSV_type(SVt_PVAV);
     /* sv_upgrade does AvREAL_only()  */
     AvALLOC(av) = 0;
     AvARRAY(av) = NULL;
@@ -385,9 +383,7 @@ will have a reference count of 1.
 AV *
 Perl_av_make(pTHX_ register I32 size, register SV **strp)
 {
-    register AV * const av = (AV*)newSV(0);
-
-    sv_upgrade((SV *) av,SVt_PVAV);
+    register AV * const av = (AV*)newSV_type(SVt_PVAV);
     /* sv_upgrade does AvREAL_only()  */
     if (size) {                /* "defined" was returning undef for size==0 anyway. */
         register SV** ary;
@@ -660,10 +656,9 @@ Perl_av_unshift(pTHX_ register AV *av, register I32 num)
     }
     if (num) {
        register SV **ary;
-       I32 slide;
-       i = AvFILLp(av);
+       const I32 i = AvFILLp(av);
        /* Create extra elements */
-       slide = i > 0 ? i : 0;
+       const I32 slide = i > 0 ? i : 0;
        num += slide;
        av_extend(av, i + num);
        AvFILLp(av) += num;