summaryrefslogtreecommitdiff
path: root/hv.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-05-23 20:26:35 +0000
committerNicholas Clark <nick@ccl4.org>2005-05-23 20:26:35 +0000
commit9f1501b2c542cf2dc1feaf9b0d1d694acd6c0807 (patch)
tree41f8d88d51866dba4f84909fd7dcf1c4cef398a7 /hv.h
parent0bb78401313e0347fd894143d813c3036c2eccb4 (diff)
downloadperl-9f1501b2c542cf2dc1feaf9b0d1d694acd6c0807.tar.gz
Don't allocate an IV slot where the type doesn't use the IV slot.
p4raw-id: //depot/perl@24557
Diffstat (limited to 'hv.h')
-rw-r--r--hv.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/hv.h b/hv.h
index 90d911544f..0d1f975ab1 100644
--- a/hv.h
+++ b/hv.h
@@ -63,7 +63,26 @@ struct xpvhv {
#define xhv_aux xnv_u.xnv_s.xnv_p1
#define xhv_keys xnv_u.xnv_s.xnv_u2.xnv_i2
+#if 0
typedef struct xpvhv xpvhv_allocated;
+#else
+typedef struct {
+ STRLEN xhv_fill; /* how full xhv_array currently is */
+ STRLEN xhv_max; /* subscript of last element of xhv_array */
+ union {
+ NV xnvu_nv; /* numeric value, if any */
+ struct {
+ void *xnv_p1;
+ union {
+ void *xnv_p2;
+ IV xnv_i2; /* how many elements in the array */
+ } xnv_u2;
+ } xnv_s;
+ } xnv_u;
+ MAGIC* xmg_magic; /* magic for scalar array */
+ HV* xmg_stash; /* class package */
+} xpvhv_allocated;
+#endif
/* hash a key */
/* FYI: This is the "One-at-a-Time" algorithm by Bob Jenkins