casting games.
p4raw-id: //depot/perl@25297
*
*/
-/* typedefs to eliminate some typing */
-typedef struct he HE;
-typedef struct hek HEK;
-
/* entry in hash value chain */
struct he {
/* Keep hent_next first in this structure, because sv_free_arenas take
#define Nullhv Null(HV*)
-#define HvARRAY(hv) (*(HE***)&((hv)->sv_u.svu_array))
+#define HvARRAY(hv) ((hv)->sv_u.svu_hash)
#define HvFILL(hv) ((XPVHV*) SvANY(hv))->xhv_fill
#define HvMAX(hv) ((XPVHV*) SvANY(hv))->xhv_max
/* This quite intentionally does no flag checking first. That's your
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 { */
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 */
SV* svu_rv;
char* svu_pv;
SV** svu_array;
+ HE** svu_hash;
} sv_u;
};
SV* svu_rv;
char* svu_pv;
SV** svu_array;
+ HE** svu_hash;
} sv_u;
};
SV* svu_rv;
char* svu_pv; /* pointer to first array element */
SV** svu_array;
+ HE** svu_hash;
} sv_u;
};
SV* svu_rv;
char* svu_pv;
SV** svu_array;
+ HE** svu_hash;
} sv_u;
};
SV* svu_rv;
char* svu_pv;
SV** svu_array;
+ HE** svu_hash;
} sv_u;
};