In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/c1bf42f3e6ad8f1c3d821a2ae616c5703f66237c?hp=4c050ad563ece4467b3b083d8efcf2b62ad0b9c5>

- Log -----------------------------------------------------------------
commit c1bf42f3e6ad8f1c3d821a2ae616c5703f66237c
Author: Nicholas Clark <n...@ccl4.org>
Date:   Mon May 31 13:19:22 2010 +0100

    In Perl_pad_add_name(), use sv_upgrade() directly rather than new[AH]V().
    
    As newAV() and newHV() are now merely wrappers around sv_upgrade(), and the
    existing SV is always brand new and of type SVt_NULL, call them on it, 
rather
    than disposing of it as a side effect of storing a(nother new) SV.
    
    Also, no need to set SvPADMY() again, as it is already set.
    
    Resolves RT #73092.
-----------------------------------------------------------------------

Summary of changes:
 pad.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/pad.c b/pad.c
index f297e54..477ee0f 100644
--- a/pad.c
+++ b/pad.c
@@ -420,13 +420,13 @@ Perl_pad_add_name(pTHX_ const char *name, const STRLEN 
len, const U32 flags,
        PL_min_intro_pending = offset;
     PL_max_intro_pending = offset;
     /* if it's not a simple scalar, replace with an AV or HV */
-    /* XXX DAPM since slot has been allocated, replace
-     * av_store with PL_curpad[offset] ? */
+    assert(SvTYPE(PL_curpad[offset]) == SVt_NULL);
+    assert(SvREFCNT(PL_curpad[offset]) == 1);
     if (*name == '@')
-       av_store(PL_comppad, offset, MUTABLE_SV(newAV()));
+       sv_upgrade(PL_curpad[offset], SVt_PVAV);
     else if (*name == '%')
-       av_store(PL_comppad, offset, MUTABLE_SV(newHV()));
-    SvPADMY_on(PL_curpad[offset]);
+       sv_upgrade(PL_curpad[offset], SVt_PVHV);
+    assert(SvPADMY(PL_curpad[offset]));
     DEBUG_Xv(PerlIO_printf(Perl_debug_log,
                           "Pad addname: %ld \"%s\" new lex=0x%"UVxf"\n",
                           (long)offset, name, PTR2UV(PL_curpad[offset])));

--
Perl5 Master Repository

Reply via email to