This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
charnames.t: tweak amount of testing of CJK chars
[perl5.git] / hv.h
diff --git a/hv.h b/hv.h
index 3906496..468c072 100644 (file)
--- a/hv.h
+++ b/hv.h
@@ -83,14 +83,12 @@ struct xpvhv_aux {
 /* hash structure: */
 /* This structure must match the beginning of struct xpvmg in sv.h. */
 struct xpvhv {
-    union _xnvu xnv_u;
-    STRLEN      xhv_fill;       /* how full xhv_array currently is */
+    HV*                xmg_stash;      /* class package */
+    union _xmgu        xmg_u;
+    STRLEN      xhv_keys;       /* total keys, including placeholders */
     STRLEN      xhv_max;        /* subscript of last element of xhv_array */
-    _XPVMG_HEAD;
 };
 
-#define xhv_keys xiv_u.xivu_iv
-
 /* hash a key */
 /* FYI: This is the "One-at-a-Time" algorithm by Bob Jenkins
  * from requirements by Colin Plumb.
@@ -206,7 +204,7 @@ If you are using C<HePV> to get values to pass to C<newSVpvn()> to create a
 new SV, you should consider using C<newSVhek(HeKEY_hek(he))> as it is more
 efficient.
 
-=for apidoc Am|char*|HeUTF8|HE* he|STRLEN len
+=for apidoc Am|char*|HeUTF8|HE* he
 Returns whether the C<char *> value returned by C<HePV> is encoded in UTF-8,
 doing any necessary dereferencing of possibly C<SV*> keys.  The value returned
 will be 0 or non-0, not necessarily 1 (or even a value with any low bits set),
@@ -236,7 +234,7 @@ C<SV*>.
 #  define Nullhv Null(HV*)
 #endif
 #define HvARRAY(hv)    ((hv)->sv_u.svu_hash)
-#define HvFILL(hv)     ((XPVHV*)  SvANY(hv))->xhv_fill
+#define HvFILL(hv)     Perl_hv_fill(aTHX_ (const HV *)(hv))
 #define HvMAX(hv)      ((XPVHV*)  SvANY(hv))->xhv_max
 /* This quite intentionally does no flag checking first. That's your
    responsibility.  */