summaryrefslogtreecommitdiff
path: root/sv.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-08-17 09:06:33 +0000
committerNicholas Clark <nick@ccl4.org>2005-08-17 09:06:33 +0000
commit43e6e717d18ccf9c351f44370ef56abe09dc1cc4 (patch)
treed4a494b13c1c139229e46fa7017e3d35765dfab4 /sv.h
parent724e67cb5119c18364c1131d2478435750263a24 (diff)
downloadperl-43e6e717d18ccf9c351f44370ef56abe09dc1cc4.tar.gz
Given that we now have a union, there's no need for all the HvARRAY()
casting games. p4raw-id: //depot/perl@25297
Diffstat (limited to 'sv.h')
-rw-r--r--sv.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/sv.h b/sv.h
index 6983f45f27..003e0418df 100644
--- a/sv.h
+++ b/sv.h
@@ -62,6 +62,11 @@ typedef enum {
SVt_PVIO /* 15 */
} svtype;
+
+/* typedefs to eliminate some typing */
+typedef struct he HE;
+typedef struct hek HEK;
+
/* Using C's structural equivalence to help emulate C++ inheritance here... */
struct STRUCT_SV { /* struct sv { */
@@ -74,6 +79,7 @@ struct STRUCT_SV { /* struct sv { */
SV* svu_rv; /* pointer to another SV */
char* svu_pv; /* pointer to malloced string */
SV** svu_array;
+ HE** svu_hash;
} sv_u;
#ifdef DEBUG_LEAKING_SCALARS
unsigned sv_debug_optype:9; /* the type of OP that allocated us */
@@ -94,6 +100,7 @@ struct gv {
SV* svu_rv;
char* svu_pv;
SV** svu_array;
+ HE** svu_hash;
} sv_u;
};
@@ -107,6 +114,7 @@ struct cv {
SV* svu_rv;
char* svu_pv;
SV** svu_array;
+ HE** svu_hash;
} sv_u;
};
@@ -120,6 +128,7 @@ struct av {
SV* svu_rv;
char* svu_pv; /* pointer to first array element */
SV** svu_array;
+ HE** svu_hash;
} sv_u;
};
@@ -133,6 +142,7 @@ struct hv {
SV* svu_rv;
char* svu_pv;
SV** svu_array;
+ HE** svu_hash;
} sv_u;
};
@@ -146,6 +156,7 @@ struct io {
SV* svu_rv;
char* svu_pv;
SV** svu_array;
+ HE** svu_hash;
} sv_u;
};