X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hv.c;h=4831ccd563ad38db1cc0b76ce23ab5d645768f83;hb=83f957ec18f48986bbac4f0b35e66bbc0e02ccdf;hp=903d0b80eafe3b6d0588cbc7d2245a94f7801cdf;hpb=ce5d06123ae0253bf2e33033ffbfba16ce3bb79e;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hv.c b/hv.c index 903d0b8..4831ccd 100644 --- a/hv.c +++ b/hv.c @@ -1397,9 +1397,7 @@ HV * Perl_newHV(pTHX) { register XPVHV* xhv; - HV * const hv = (HV*)newSV(0); - - sv_upgrade((SV *)hv, SVt_PVHV); + HV * const hv = (HV*)newSV_type(SVt_PVHV); xhv = (XPVHV*)SvANY(hv); assert(!SvOK(hv)); #ifndef NODEFAULT_SHAREKEYS @@ -2291,6 +2289,7 @@ Perl_unsharepvn(pTHX_ const char *str, I32 len, U32 hash) void Perl_unshare_hek(pTHX_ HEK *hek) { + assert(hek); unshare_hek_or_pvn(hek, NULL, 0, 0); } @@ -2589,8 +2588,7 @@ S_refcounted_he_value(pTHX_ const struct refcounted_he *he) case HVrhek_PV: /* Create a string SV that directly points to the bytes in our structure. */ - value = newSV(0); - sv_upgrade(value, SVt_PV); + value = newSV_type(SVt_PV); SvPV_set(value, (char *) he->refcounted_he_data + 1); SvCUR_set(value, he->refcounted_he_val.refcounted_he_u_len); /* This stops anything trying to free it */ @@ -2618,7 +2616,7 @@ S_refcounted_he_value(pTHX_ const struct refcounted_he *he) /* =for apidoc refcounted_he_chain_2hv -Generates an returns a C by walking up the tree starting at the passed +Generates and returns a C by walking up the tree starting at the passed in C. =cut