Patch by Abigail to avoid using $& in diagnostics.pm.
[p5sagit/p5-mst-13.2.git] / hv.h
diff --git a/hv.h b/hv.h
index bd157f8..6e19c84 100644 (file)
--- a/hv.h
+++ b/hv.h
@@ -1,7 +1,7 @@
 /*    hv.h
  *
  *    Copyright (C) 1991, 1992, 1993, 1996, 1997, 1998, 1999,
- *    2000, 2001, 2002, 2005, by Larry Wall and others
+ *    2000, 2001, 2002, 2003, 2005, 2006, 2007, by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -52,6 +52,15 @@ struct xpvhv {
     union {
        NV      xnv_nv;         /* numeric value, if any */
        HV *    xgv_stash;
+       struct {
+           U32 xlow;
+           U32 xhigh;
+       }       xpad_cop_seq;   /* used by pad.c for cop_sequence */
+       struct {
+           U32 xbm_previous;   /* how many characters in string before rare? */
+           U8  xbm_flags;
+           U8  xbm_rare;       /* rarest character in string */
+       }       xbm_s;          /* fields from PVBM */
     }          xnv_u;
     STRLEN     xhv_fill;       /* how full xhv_array currently is */
     STRLEN     xhv_max;        /* subscript of last element of xhv_array */
@@ -71,9 +80,6 @@ struct xpvhv {
 
 #define xhv_keys xiv_u.xivu_iv
 
-#if 0
-typedef struct xpvhv xpvhv_allocated;
-#else
 typedef struct {
     STRLEN     xhv_fill;       /* how full xhv_array currently is */
     STRLEN     xhv_max;        /* subscript of last element of xhv_array */
@@ -90,7 +96,6 @@ typedef struct {
     } xmg_u;
     HV*                xmg_stash;      /* class package */
 } xpvhv_allocated;
-#endif
 
 /* hash a key */
 /* FYI: This is the "One-at-a-Time" algorithm by Bob Jenkins
@@ -298,8 +303,7 @@ C<SV*>.
 #define HeHASH(he)             HEK_HASH(HeKEY_hek(he))
 #define HePV(he,lp)            ((HeKLEN(he) == HEf_SVKEY) ?            \
                                 SvPV(HeKEY_sv(he),lp) :                \
-                                (((lp = HeKLEN(he)) >= 0) ?            \
-                                 HeKEY(he) : NULL))
+                                ((lp = HeKLEN(he)), HeKEY(he)))
 
 #define HeSVKEY(he)            ((HeKEY(he) &&                          \
                                  HeKLEN(he) == HEf_SVKEY) ?            \