From: Nicholas Clark Date: Wed, 19 Sep 2007 18:11:40 +0000 (+0000) Subject: ext/XS/APItest/t/hash.t was failing because the fieldhash code didn't X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=642cebe60d6a8fd4d4840b0f7ca731bb215af062;p=p5sagit%2Fp5-mst-13.2.git ext/XS/APItest/t/hash.t was failing because the fieldhash code didn't reset the pre-computed hash value. p4raw-id: //depot/perl@31913 --- diff --git a/hv.c b/hv.c index 6d7c25a..7697fea 100644 --- a/hv.c +++ b/hv.c @@ -431,6 +431,7 @@ S_hv_fetch_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, However, as we replace the original key with the converted key, this would result in a double conversion, which would show up as a bug if the conversion routine is not idempotent. */ + hash = 0; } if (keysv) { if (flags & HVhek_FREEKEY) @@ -966,8 +967,10 @@ S_hv_delete_common(pTHX_ HV *hv, SV *keysv, const char *key, STRLEN klen, return NULL; if (SvSMAGICAL(hv) && SvGMAGICAL(hv) - && !(d_flags & HV_DISABLE_UVAR_XKEY)) + && !(d_flags & HV_DISABLE_UVAR_XKEY)) { keysv = hv_magic_uvar_xkey(hv, keysv, key, klen, k_flags, HV_DELETE); + hash = 0; + } if (keysv) { if (k_flags & HVhek_FREEKEY) Safefree(key);