slurping an empty file should return '' rather than undef, with
[p5sagit/p5-mst-13.2.git] / hv.h
diff --git a/hv.h b/hv.h
index 19694ac..1f8d9ce 100644 (file)
--- a/hv.h
+++ b/hv.h
@@ -45,7 +45,7 @@ struct xpvhv {
        register U32 hash_PeRlHaSh = 0; \
        while (i_PeRlHaSh--) \
            hash_PeRlHaSh = hash_PeRlHaSh * 33 + *s_PeRlHaSh++; \
-       (hash) = hash_PeRlHaSh; \
+       (hash) = hash_PeRlHaSh + (hash_PeRlHaSh>>5); \
     } STMT_END
 
 
@@ -71,8 +71,6 @@ struct xpvhv {
 #define HvLAZYDEL_on(hv)       (SvFLAGS(hv) |= SVphv_LAZYDEL)
 #define HvLAZYDEL_off(hv)      (SvFLAGS(hv) &= ~SVphv_LAZYDEL)
 
-#ifdef OVERLOAD
-
 /* Maybe amagical: */
 /* #define HV_AMAGICmb(hv)      (SvFLAGS(hv) & (SVpgv_badAM | SVpgv_AM)) */
 
@@ -86,8 +84,6 @@ struct xpvhv {
 #define HV_badAMAGIC_off(hv) (SvFLAGS(hv) &= ~SVpgv_badAM)
 */
 
-#endif /* OVERLOAD */
-
 #define Nullhe Null(HE*)
 #define HeNEXT(he)             (he)->hent_next
 #define HeKEY_hek(he)          (he)->hent_hek