summaryrefslogtreecommitdiff
path: root/hv.h
diff options
context:
space:
mode:
Diffstat (limited to 'hv.h')
-rw-r--r--hv.h41
1 files changed, 7 insertions, 34 deletions
diff --git a/hv.h b/hv.h
index cdb486302c..adb00c1a86 100644
--- a/hv.h
+++ b/hv.h
@@ -19,12 +19,6 @@
*
*/
-#define FILLPCT 80 /* don't make greater than 99 */
-#define DBM_CACHE_MAX 63 /* cache 64 entries for dbm file */
- /* (resident array acts as a write-thru cache)*/
-
-#define COEFFSIZE (16 * 8) /* size of coeff array */
-
typedef struct he HE;
struct he {
@@ -36,47 +30,26 @@ struct he {
};
struct xpvhv {
- char * xpv_pv; /* pointer to malloced string */
- STRLEN xpv_cur; /* length of xp_pv as a C string */
- STRLEN xpv_len; /* allocated size */
- STRLEN xof_off; /* ptr is incremented by offset */
+ char * xhv_array; /* pointer to malloced string */
+ STRLEN xhv_fill; /* how full xhv_array currently is */
+ STRLEN xhv_max; /* subscript of last element of xhv_array */
+ STRLEN xhv_keys; /* how many elements in the array */
double xnv_nv; /* numeric value, if any */
MAGIC* xmg_magic; /* magic for scalar array */
HV* xmg_stash; /* class package */
- MAGIC* xhv_magic; /* magic for elements */
-
- HE **xhv_array;
- I32 xhv_max; /* subscript of last element of xhv_array */
- I32 xhv_dosplit; /* how full to get before splitting */
- I32 xhv_fill; /* how full xhv_array currently is */
I32 xhv_riter; /* current root of iterator */
HE *xhv_eiter; /* current entry of iterator */
PMOP *xhv_pmroot; /* list of pm's for this package */
char *xhv_name; /* name, if a symbol table */
-#ifdef SOME_DBM
-#ifdef HAS_GDBM
- GDBM_FILE xhv_dbm;
-#else
-#ifdef HAS_NDBM
- DBM *xhv_dbm;
-#else
- I32 xhv_dbm;
-#endif
-#endif
-#endif
- unsigned char xhv_coeffsize; /* is 0 for symbol tables */
};
#define Nullhv Null(HV*)
-#define HvMAGIC(hv) ((XPVHV*) SvANY(hv))->xhv_magic
-#define HvARRAY(hv) ((XPVHV*) SvANY(hv))->xhv_array
-#define HvMAX(hv) ((XPVHV*) SvANY(hv))->xhv_max
-#define HvDOSPLIT(hv) ((XPVHV*) SvANY(hv))->xhv_dosplit
+#define HvARRAY(hv) ((HE**)((XPVHV*) SvANY(hv))->xhv_array)
#define HvFILL(hv) ((XPVHV*) SvANY(hv))->xhv_fill
+#define HvMAX(hv) ((XPVHV*) SvANY(hv))->xhv_max
+#define HvKEYS(hv) ((XPVHV*) SvANY(hv))->xhv_keys
#define HvRITER(hv) ((XPVHV*) SvANY(hv))->xhv_riter
#define HvEITER(hv) ((XPVHV*) SvANY(hv))->xhv_eiter
#define HvPMROOT(hv) ((XPVHV*) SvANY(hv))->xhv_pmroot
#define HvNAME(hv) ((XPVHV*) SvANY(hv))->xhv_name
-#define HvDBM(hv) ((XPVHV*) SvANY(hv))->xhv_dbm
-#define HvCOEFFSIZE(hv) ((XPVHV*) SvANY(hv))->xhv_coeffsize