AV *xhv_backreferences; /* back references for weak references */
HE *xhv_eiter; /* current entry of iterator */
I32 xhv_riter; /* current root of iterator */
AV *xhv_backreferences; /* back references for weak references */
HE *xhv_eiter; /* current entry of iterator */
I32 xhv_riter; /* current root of iterator */
* to an array of HEK pointers, this being the length. The first element is
* the name of the stash, which may be NULL. If xhv_name_count is positive,
* then *xhv_name is one of the effective names. If xhv_name_count is nega-
* to an array of HEK pointers, this being the length. The first element is
* the name of the stash, which may be NULL. If xhv_name_count is positive,
* then *xhv_name is one of the effective names. If xhv_name_count is nega-
-#define HvNAME_HEK_NN(hv) \
- ( \
- HvAUX(hv)->xhv_name_count \
- ? *(HEK **)HvAUX(hv)->xhv_name \
- : HvAUX(hv)->xhv_name \
+#define HvNAME_HEK_NN(hv) \
+ ( \
+ HvAUX(hv)->xhv_name_count \
+ ? *HvAUX(hv)->xhv_name_u.xhvnameu_names \
+ : HvAUX(hv)->xhv_name_u.xhvnameu_name \
- HvAUX(hv)->xhv_name_count > 0 ? *(HEK **)HvAUX(hv)->xhv_name : \
- HvAUX(hv)->xhv_name_count < -1 ? ((HEK **)HvAUX(hv)->xhv_name)[1] : \
+ HvAUX(hv)->xhv_name_count > 0 ? HvAUX(hv)->xhv_name_u.xhvnameu_names[0] : \
+ HvAUX(hv)->xhv_name_count < -1 ? HvAUX(hv)->xhv_name_u.xhvnameu_names[1] : \
#define XHvTOTALKEYS(xhv) ((xhv)->xhv_keys)
/*
* HvKEYS gets the number of keys that actually exist(), and is provided
* for backwards compatibility with old XS code. The core uses HvUSEDKEYS
#define XHvTOTALKEYS(xhv) ((xhv)->xhv_keys)
/*
* HvKEYS gets the number of keys that actually exist(), and is provided
* for backwards compatibility with old XS code. The core uses HvUSEDKEYS