X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hv.c;h=d5539209bbb0700d04e42e09a8da81cb9861db4d;hb=f3faeb53b75c95d2773d14d859d4fa9ca1594daa;hp=2962de3b0dde2c58c5ef3731ad3326d01570c65d;hpb=b56ba0bf6cecdb4ad30f368203c431004b90dc8e;p=p5sagit%2Fp5-mst-13.2.git 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)