|
@@ -334,6 +334,12 @@ struct lua_State {
|
|
|
|
|
|
/*
|
|
|
** Union of all collectable objects (only for conversions)
|
|
|
+** ISO C99, 6.5.2.3 p.5:
|
|
|
+** "if a union contains several structures that share a common initial
|
|
|
+** sequence [...], and if the union object currently contains one
|
|
|
+** of these structures, it is permitted to inspect the common initial
|
|
|
+** part of any of them anywhere that a declaration of the complete type
|
|
|
+** of the union is visible."
|
|
|
*/
|
|
|
union GCUnion {
|
|
|
GCObject gc; /* common header */
|
|
@@ -347,6 +353,11 @@ union GCUnion {
|
|
|
};
|
|
|
|
|
|
|
|
|
+/*
|
|
|
+** ISO C99, 6.7.2.1 p.14:
|
|
|
+** "A pointer to a union object, suitably converted, points to each of
|
|
|
+** its members [...], and vice versa."
|
|
|
+*/
|
|
|
#define cast_u(o) cast(union GCUnion *, (o))
|
|
|
|
|
|
/* macros to convert a GCObject into a specific value */
|