ext/XS/APItest/t/hash.t was failing because the fieldhash code didn't
Nicholas Clark [Wed, 19 Sep 2007 18:11:40 +0000 (18:11 +0000)]
reset the pre-computed hash value.

p4raw-id: //depot/perl@31913

hv.c

diff --git a/hv.c b/hv.c
index 6d7c25a..7697fea 100644 (file)
--- 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);