aboutsummaryrefslogtreecommitdiff
path: root/lobject.h
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2011-09-24 18:12:01 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2011-09-24 18:12:01 -0300
commit87912786af9125d062babe2497fc4cb664728eda (patch)
tree07cc2752b09679dfa8c61775cd54d01ea452e69d /lobject.h
parent5645a84368f2a515281da60f96e09d0fdeaf0470 (diff)
downloadlua-87912786af9125d062babe2497fc4cb664728eda.tar.gz
lua-87912786af9125d062babe2497fc4cb664728eda.tar.bz2
lua-87912786af9125d062babe2497fc4cb664728eda.zip
dead objects are not collectable.
Diffstat (limited to 'lobject.h')
-rw-r--r--lobject.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/lobject.h b/lobject.h
index 2e660b62..1f32e50f 100644
--- a/lobject.h
+++ b/lobject.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lobject.h,v 2.60 2011/06/13 14:13:06 roberto Exp roberto $ 2** $Id: lobject.h,v 2.61 2011/07/04 20:29:02 roberto Exp roberto $
3** Type definitions for Lua objects 3** Type definitions for Lua objects
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -132,7 +132,7 @@ typedef struct lua_TValue TValue;
132#define ttislcf(o) checktag((o), LUA_TLCF) 132#define ttislcf(o) checktag((o), LUA_TLCF)
133#define ttisuserdata(o) checktag((o), ctb(LUA_TUSERDATA)) 133#define ttisuserdata(o) checktag((o), ctb(LUA_TUSERDATA))
134#define ttisthread(o) checktag((o), ctb(LUA_TTHREAD)) 134#define ttisthread(o) checktag((o), ctb(LUA_TTHREAD))
135#define ttisdeadkey(o) checktag((o), ctb(LUA_TDEADKEY)) 135#define ttisdeadkey(o) checktag((o), LUA_TDEADKEY)
136 136
137#define ttisequal(o1,o2) (rttype(o1) == rttype(o2)) 137#define ttisequal(o1,o2) (rttype(o1) == rttype(o2))
138 138
@@ -151,6 +151,8 @@ typedef struct lua_TValue TValue;
151#define hvalue(o) check_exp(ttistable(o), &val_(o).gc->h) 151#define hvalue(o) check_exp(ttistable(o), &val_(o).gc->h)
152#define bvalue(o) check_exp(ttisboolean(o), val_(o).b) 152#define bvalue(o) check_exp(ttisboolean(o), val_(o).b)
153#define thvalue(o) check_exp(ttisthread(o), &val_(o).gc->th) 153#define thvalue(o) check_exp(ttisthread(o), &val_(o).gc->th)
154/* a dead value may get the 'gc' field, but cannot access its contents */
155#define deadvalue(o) check_exp(ttisdeadkey(o), cast(void *, val_(o).gc))
154 156
155#define l_isfalse(o) (ttisnil(o) || (ttisboolean(o) && bvalue(o) == 0)) 157#define l_isfalse(o) (ttisnil(o) || (ttisboolean(o) && bvalue(o) == 0))
156 158
@@ -224,7 +226,7 @@ typedef struct lua_TValue TValue;
224 val_(io).gc=cast(GCObject *, (x)); settt_(io, ctb(LUA_TPROTO)); \ 226 val_(io).gc=cast(GCObject *, (x)); settt_(io, ctb(LUA_TPROTO)); \
225 checkliveness(G(L),io); } 227 checkliveness(G(L),io); }
226 228
227#define setdeadvalue(obj) settt_(obj, ctb(LUA_TDEADKEY)) 229#define setdeadvalue(obj) settt_(obj, LUA_TDEADKEY)
228 230
229 231
230 232