From: Nicholas Clark <nick@ccl4.org>
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);