X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/b56ba0bf6cecdb4ad30f368203c431004b90dc8e..d50dd4e4eaf05f186e67ce979ed880c59f1a81bc:/hv.c diff --git a/hv.c b/hv.c index 2962de3..d553920 100644 --- a/hv.c +++ b/hv.c @@ -1191,7 +1191,9 @@ Perl_newHVhv(pTHX_ HV *ohv) /* It's an ordinary hash, so copy it fast. AMS 20010804 */ int i, shared = !!HvSHAREKEYS(ohv); HE **ents, **oents = (HE **)HvARRAY(ohv); - New(0, (char *)ents, PERL_HV_ARRAY_ALLOC_BYTES(hv_max+1), char); + char *a; + New(0, a, PERL_HV_ARRAY_ALLOC_BYTES(hv_max+1), char); + ents = (HE**)a; /* In each bucket... */ for (i = 0; i <= hv_max; i++) { @@ -1209,7 +1211,7 @@ Perl_newHVhv(pTHX_ HV *ohv) STRLEN len = HeKLEN_UTF8(oent); ent = new_HE(); - HeVAL(ent) = SvREFCNT_inc(HeVAL(oent)); + HeVAL(ent) = newSVsv(HeVAL(oent)); HeKEY_hek(ent) = shared ? share_hek(key, len, hash) : save_hek(key, len, hash); if (prev)