Perl_hv_name_add needs to set xhv_name_count in one other place.
authorFather Chrysostomos <sprout@cpan.org>
Sun, 24 Oct 2010 01:55:29 +0000 (18:55 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Sun, 24 Oct 2010 01:55:29 +0000 (18:55 -0700)
Perl_hv_name_add was not setting the name count when upgrading a HEK*
to an array of HEK*s.

hv.c

diff --git a/hv.c b/hv.c
index 15735a3..89941d8 100644 (file)
--- a/hv.c
+++ b/hv.c
@@ -2084,7 +2084,7 @@ Perl_hv_name_add(pTHX_ HV *hv, const char *name, U32 len)
            HEK_LEN(existing_name) == (I32)len
         && memEQ(HEK_KEY(existing_name), name, len)
        ) return;
-       Newxc(aux->xhv_name, 2, HEK *, HEK);
+       Newxc(aux->xhv_name, aux->xhv_name_count = 2, HEK *, HEK);
        *(HEK **)aux->xhv_name = existing_name;
        ((HEK **)aux->xhv_name)[1] = share_hek(name, len, hash);
     }