X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hv.c;h=d3bb914653dfb9c610b4f17ef6487406327a03cb;hb=1577bb166a95354d8198faf9da46ef504c9ebfd7;hp=2962de3b0dde2c58c5ef3731ad3326d01570c65d;hpb=b56ba0bf6cecdb4ad30f368203c431004b90dc8e;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hv.c b/hv.c index 2962de3..d3bb914 100644 --- a/hv.c +++ b/hv.c @@ -99,7 +99,7 @@ Perl_unshare_hek(pTHX_ HEK *hek) #if defined(USE_ITHREADS) HE * -Perl_he_dup(pTHX_ HE *e, bool shared, clone_params* param) +Perl_he_dup(pTHX_ HE *e, bool shared, CLONE_PARAMS* param) { HE *ret; @@ -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)