*
*/
-/* typedefs to eliminate some typing */
-typedef struct he HE;
-typedef struct hek HEK;
-
/* entry in hash value chain */
struct he {
/* Keep hent_next first in this structure, because sv_free_arenas take
=head1 Hash Manipulation Functions
=for apidoc Am|char*|HvNAME|HV* stash
-Returns the package name of a stash. See C<SvSTASH>, C<CvSTASH>.
+Returns the package name of a stash, or NULL if C<stash> isn't a stash.
+See C<SvSTASH>, C<CvSTASH>.
=for apidoc Am|void*|HeKEY|HE* he
Returns the actual pointer stored in the key slot of the hash entry. The
#define Nullhv Null(HV*)
-#define HvARRAY(hv) (*(HE***)&((hv)->sv_u.svu_array))
+#define HvARRAY(hv) ((hv)->sv_u.svu_hash)
#define HvFILL(hv) ((XPVHV*) SvANY(hv))->xhv_fill
#define HvMAX(hv) ((XPVHV*) SvANY(hv))->xhv_max
/* This quite intentionally does no flag checking first. That's your