*
*/
-#define _XPVAV_ALLOCATED_HEAD \
- SSize_t xav_fill; /* Index of last element present */ \
- SSize_t xav_max /* max index for which array has space */
-
-#define _XPVAV_HEAD \
- union _xnvu xnv_u; \
- _XPVAV_ALLOCATED_HEAD
-
struct xpvav {
- _XPVAV_HEAD;
+ union _xnvu xnv_u;
+ SSize_t xav_fill; /* Index of last element present */
+ SSize_t xav_max; /* max index for which array has space */
_XPVMG_HEAD;
};
-#undef _XPVAV_ALLOCATED_HEAD
-#undef _XPVAV_HEAD
-
/* SV** xav_alloc; */
#define xav_alloc xiv_u.xivu_p1
/* SV* xav_arylen; */
struct mro_meta *xhv_mro_meta;
};
-#define _XPVHV_ALLOCATED_HEAD \
- STRLEN xhv_fill; /* how full xhv_array currently is */ \
- STRLEN xhv_max /* subscript of last element of xhv_array */
-
-#define _XPVHV_HEAD \
- union _xnvu xnv_u; \
- _XPVHV_ALLOCATED_HEAD
-
/* hash structure: */
/* This structure must match the beginning of struct xpvmg in sv.h. */
struct xpvhv {
- _XPVHV_HEAD;
+ union _xnvu xnv_u;
+ STRLEN xhv_fill; /* how full xhv_array currently is */
+ STRLEN xhv_max; /* subscript of last element of xhv_array */
_XPVMG_HEAD;
};
#define xhv_keys xiv_u.xivu_iv
-#undef _XPVHV_ALLOCATED_HEAD
-#undef _XPVHV_HEAD
-
/* hash a key */
/* FYI: This is the "One-at-a-Time" algorithm by Bob Jenkins
* from requirements by Colin Plumb.
#include "utf8.h"
/* defined in sv.c, but also used in [ach]v.c */
-#undef _XPV_ALLOCATED_HEAD
#undef _XPV_HEAD
#undef _XPVMG_HEAD
#undef _XPVCV_COMMON
/* RV upwards. However, SVf_ROK and SVp_IOK are exclusive */
#define SVprv_WEAKREF 0x80000000 /* Weak reference */
-#define _XPV_ALLOCATED_HEAD \
- STRLEN xpv_cur; /* length of svu_pv as a C string */ \
- STRLEN xpv_len /* allocated size */
-
#define _XPV_HEAD \
union _xnvu xnv_u; \
- _XPV_ALLOCATED_HEAD
+ STRLEN xpv_cur; /* length of svu_pv as a C string */ \
+ STRLEN xpv_len /* allocated size */
union _xnvu {
NV xnv_nv; /* numeric value, if any */