aboutsummaryrefslogtreecommitdiff
path: root/lstate.h
diff options
context:
space:
mode:
Diffstat (limited to 'lstate.h')
-rw-r--r--lstate.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/lstate.h b/lstate.h
index f14738ba..e8bdb32b 100644
--- a/lstate.h
+++ b/lstate.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lstate.h,v 1.99 2002/10/25 20:05:28 roberto Exp roberto $ 2** $Id: lstate.h,v 1.100 2002/11/06 19:08:00 roberto Exp roberto $
3** Global State 3** Global State
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -144,6 +144,7 @@ struct lua_State {
144 lua_Hook hook; 144 lua_Hook hook;
145 TObject _gt; /* table of globals */ 145 TObject _gt; /* table of globals */
146 GCObject *openupval; /* list of open upvalues in this stack */ 146 GCObject *openupval; /* list of open upvalues in this stack */
147 GCObject *gclist;
147 struct lua_longjmp *errorJmp; /* current error recover point */ 148 struct lua_longjmp *errorJmp; /* current error recover point */
148 ptrdiff_t errfunc; /* current error handling function (stack index) */ 149 ptrdiff_t errfunc; /* current error handling function (stack index) */
149}; 150};
@@ -167,6 +168,21 @@ union GCObject {
167}; 168};
168 169
169 170
171/* macros to convert a GCObject into a specific value */
172#define gcotots(o) check_exp((o)->gch.tt == LUA_TSTRING, &((o)->ts))
173#define gcotou(o) check_exp((o)->gch.tt == LUA_TUSERDATA, &((o)->u))
174#define gcotocl(o) check_exp((o)->gch.tt == LUA_TFUNCTION, &((o)->cl))
175#define gcotoh(o) check_exp((o)->gch.tt == LUA_TTABLE, &((o)->h))
176#define gcotop(o) check_exp((o)->gch.tt == LUA_TPROTO, &((o)->p))
177#define gcotouv(o) check_exp((o)->gch.tt == LUA_TUPVAL, &((o)->uv))
178#define ngcotouv(o) \
179 check_exp((o) == NULL || (o)->gch.tt == LUA_TUPVAL, &((o)->uv))
180#define gcototh(o) check_exp((o)->gch.tt == LUA_TTHREAD, &((o)->th))
181
182/* macro to convert any value into a GCObject */
183#define valtogco(v) (cast(GCObject *, (v)))
184
185
170lua_State *luaE_newthread (lua_State *L); 186lua_State *luaE_newthread (lua_State *L);
171void luaE_freethread (lua_State *L, lua_State *L1); 187void luaE_freethread (lua_State *L, lua_State *L1);
172 188