lobject.h File Reference

Go to the source code of this file.

Classes

struct  GCheader
union  Value
struct  lua_TValue
union  TString
union  Udata
struct  Proto
struct  LocVar
struct  UpVal
struct  CClosure
struct  LClosure
union  Closure
union  TKeyLua
struct  Node
struct  Table

Defines

#define LAST_TAG   LUA_TTHREAD
#define NUM_TAGS   (LAST_TAG+1)
#define LUA_TPROTO   (LAST_TAG+1)
#define LUA_TUPVAL   (LAST_TAG+2)
#define LUA_TDEADKEY   (LAST_TAG+3)
#define CommonHeader   GCObject *next; lu_byte tt; lu_byte marked
#define TValuefields   Value value; int tt
#define ttisnil(o)   (ttype(o) == LUA_TNIL)
#define ttisnumber(o)   (ttype(o) == LUA_TNUMBER)
#define ttisstring(o)   (ttype(o) == LUA_TSTRING)
#define ttistable(o)   (ttype(o) == LUA_TTABLE)
#define ttisfunction(o)   (ttype(o) == LUA_TFUNCTION)
#define ttisboolean(o)   (ttype(o) == LUA_TBOOLEAN)
#define ttisuserdata(o)   (ttype(o) == LUA_TUSERDATA)
#define ttisthread(o)   (ttype(o) == LUA_TTHREAD)
#define ttislightuserdata(o)   (ttype(o) == LUA_TLIGHTUSERDATA)
#define ttype(o)   ((o)->tt)
#define gcvalue(o)   check_exp(iscollectable(o), (o)->value.gc)
#define pvalue(o)   check_exp(ttislightuserdata(o), (o)->value.p)
#define nvalue(o)   check_exp(ttisnumber(o), (o)->value.n)
#define rawtsvalue(o)   check_exp(ttisstring(o), &(o)->value.gc->ts)
#define tsvalue(o)   (&rawtsvalue(o)->tsv)
#define rawuvalue(o)   check_exp(ttisuserdata(o), &(o)->value.gc->u)
#define uvalue(o)   (&rawuvalue(o)->uv)
#define clvalue(o)   check_exp(ttisfunction(o), &(o)->value.gc->cl)
#define hvalue(o)   check_exp(ttistable(o), &(o)->value.gc->h)
#define bvalue(o)   check_exp(ttisboolean(o), (o)->value.b)
#define thvalue(o)   check_exp(ttisthread(o), &(o)->value.gc->th)
#define l_isfalse(o)   (ttisnil(o) || (ttisboolean(o) && bvalue(o) == 0))
#define checkconsistency(obj)   lua_assert(!iscollectable(obj) || (ttype(obj) == (obj)->value.gc->gch.tt))
#define checkliveness(g, obj)
#define setnilvalue(obj)   ((obj)->tt=LUA_TNIL)
#define setnvalue(obj, x)   { TValue *i_o=(obj); i_o->value.n=(x); i_o->tt=LUA_TNUMBER; }
#define setpvalue(obj, x)   { TValue *i_o=(obj); i_o->value.p=(x); i_o->tt=LUA_TLIGHTUSERDATA; }
#define setbvalue(obj, x)   { TValue *i_o=(obj); i_o->value.b=(x); i_o->tt=LUA_TBOOLEAN; }
#define setsvalue(L, obj, x)
#define setuvalue(L, obj, x)
#define setthvalue(L, obj, x)
#define setclvalue(L, obj, x)
#define sethvalue(L, obj, x)
#define setptvalue(L, obj, x)
#define setobj(L, obj1, obj2)
#define setobjs2s   setobj
#define setobj2s   setobj
#define setsvalue2s   setsvalue
#define sethvalue2s   sethvalue
#define setptvalue2s   setptvalue
#define setobjt2t   setobj
#define setobj2t   setobj
#define setobj2n   setobj
#define setsvalue2n   setsvalue
#define setttype(obj, tt)   (ttype(obj) = (tt))
#define iscollectable(o)   (ttype(o) >= LUA_TSTRING)
#define getstr(ts)   cast(const char *, (ts) + 1)
#define svalue(o)   getstr(rawtsvalue(o))
#define VARARG_HASARG   1
#define VARARG_ISVARARG   2
#define VARARG_NEEDSARG   4
#define ClosureHeader
#define iscfunction(o)   (ttype(o) == LUA_TFUNCTION && clvalue(o)->c.isC)
#define isLfunction(o)   (ttype(o) == LUA_TFUNCTION && !clvalue(o)->c.isC)
#define lmod(s, size)   (check_exp((size&(size-1))==0, (cast(int, (s) & ((size)-1)))))
#define twoto(x)   (1<<(x))
#define sizenode(t)   (twoto((t)->lsizenode))
#define luaO_nilobject   (&luaO_nilobject_)
#define ceillog2(x)   (luaO_log2((x)-1) + 1)

Typedefs

typedef union GCObject GCObject
typedef struct lua_TValue TValue
typedef TValueStkId

Functions

LUAI_FUNC int luaO_log2 (unsigned int x)
LUAI_FUNC int luaO_int2fb (unsigned int x)
LUAI_FUNC int luaO_fb2int (int x)
LUAI_FUNC int luaO_rawequalObj (const TValue *t1, const TValue *t2)
LUAI_FUNC int luaO_str2d (const char *s, lua_Number *result)
LUAI_FUNC const char * luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp)
LUAI_FUNC const char * luaO_pushfstring (lua_State *L, const char *fmt,...)
LUAI_FUNC void luaO_chunkid (char *out, const char *source, size_t len)

Variables

LUAI_DATA const TValue luaO_nilobject_

Define Documentation

#define bvalue (  )     check_exp(ttisboolean(o), (o)->value.b)
#define ceillog2 (  )     (luaO_log2((x)-1) + 1)

Definition at line 368 of file lobject.h.

Referenced by countint(), and setnodevector().

#define checkconsistency ( obj   )     lua_assert(!iscollectable(obj) || (ttype(obj) == (obj)->value.gc->gch.tt))

Definition at line 108 of file lobject.h.

#define checkliveness ( g,
obj   ) 
Value:
lua_assert(!iscollectable(obj) || \
  ((ttype(obj) == (obj)->value.gc->gch.tt) && !isdead(g, (obj)->value.gc)))

Definition at line 111 of file lobject.h.

#define ClosureHeader
Value:
CommonHeader; lu_byte isC; lu_byte nupvalues; GCObject *gclist; \
  struct Table *env

Definition at line 291 of file lobject.h.

#define clvalue (  )     check_exp(ttisfunction(o), &(o)->value.gc->cl)
#define CommonHeader   GCObject *next; lu_byte tt; lu_byte marked

Definition at line 43 of file lobject.h.

#define gcvalue (  )     check_exp(iscollectable(o), (o)->value.gc)
#define getstr ( ts   )     cast(const char *, (ts) + 1)
#define hvalue (  )     check_exp(ttistable(o), &(o)->value.gc->h)
#define iscfunction (  )     (ttype(o) == LUA_TFUNCTION && clvalue(o)->c.isC)

Definition at line 315 of file lobject.h.

Referenced by lua_iscfunction(), and lua_tocfunction().

#define iscollectable (  )     (ttype(o) >= LUA_TSTRING)

Definition at line 189 of file lobject.h.

Referenced by findindex(), iscleared(), luaO_rawequalObj(), and removeentry().

#define isLfunction (  )     (ttype(o) == LUA_TFUNCTION && !clvalue(o)->c.isC)

Definition at line 316 of file lobject.h.

Referenced by lua_dump().

#define l_isfalse (  )     (ttisnil(o) || (ttisboolean(o) && bvalue(o) == 0))

Definition at line 103 of file lobject.h.

Referenced by call_orderTM(), lua_toboolean(), luaV_equalval(), and luaV_execute().

#define LAST_TAG   LUA_TTHREAD

Definition at line 20 of file lobject.h.

#define lmod ( s,
size   )     (check_exp((size&(size-1))==0, (cast(int, (s) & ((size)-1)))))

Definition at line 356 of file lobject.h.

Referenced by luaS_newlstr(), luaS_resize(), and newlstr().

#define LUA_TDEADKEY   (LAST_TAG+3)

Definition at line 30 of file lobject.h.

Referenced by findindex(), removeentry(), and traversetable().

#define LUA_TPROTO   (LAST_TAG+1)

Definition at line 28 of file lobject.h.

Referenced by freeobj(), luaF_newproto(), propagatemark(), and reallymarkobject().

#define LUA_TUPVAL   (LAST_TAG+2)

Definition at line 29 of file lobject.h.

Referenced by freeobj(), luaF_findupval(), luaF_newupval(), and reallymarkobject().

#define luaO_nilobject   (&luaO_nilobject_)
#define NUM_TAGS   (LAST_TAG+1)

Definition at line 22 of file lobject.h.

Referenced by lua_newstate(), and markmt().

#define nvalue (  )     check_exp(ttisnumber(o), (o)->value.n)
#define pvalue (  )     check_exp(ttislightuserdata(o), (o)->value.p)

Definition at line 92 of file lobject.h.

Referenced by lua_touserdata(), luaO_rawequalObj(), luaV_equalval(), and mainposition().

#define rawtsvalue (  )     check_exp(ttisstring(o), &(o)->value.gc->ts)
#define rawuvalue (  )     check_exp(ttisuserdata(o), &(o)->value.gc->u)

Definition at line 96 of file lobject.h.

Referenced by lua_setmetatable(), and lua_touserdata().

#define setbvalue ( obj,
 )     { TValue *i_o=(obj); i_o->value.b=(x); i_o->tt=LUA_TBOOLEAN; }
#define setclvalue ( L,
obj,
 ) 
Value:
{ TValue *i_o=(obj); \
    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TFUNCTION; \
    checkliveness(G(L),i_o); }

Definition at line 143 of file lobject.h.

Referenced by f_Ccall(), f_parser(), lua_getinfo(), lua_pushcclosure(), and luaV_execute().

#define sethvalue ( L,
obj,
 ) 
Value:
{ TValue *i_o=(obj); \
    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TTABLE; \
    checkliveness(G(L),i_o); }

Definition at line 148 of file lobject.h.

Referenced by adjust_varargs(), collectvalidlines(), f_luaopen(), index2adr(), lua_createtable(), lua_getfenv(), lua_getmetatable(), lua_setfenv(), luaV_execute(), and nilK().

#define sethvalue2s   sethvalue

Definition at line 176 of file lobject.h.

Referenced by open_func().

#define setnilvalue ( obj   )     ((obj)->tt=LUA_TNIL)
#define setnvalue ( obj,
 )     { TValue *i_o=(obj); i_o->value.n=(x); i_o->tt=LUA_TNUMBER; }
#define setobj ( L,
obj1,
obj2   ) 
Value:
{ const TValue *o2=(obj2); TValue *o1=(obj1); \
    o1->value = o2->value; o1->tt=o2->tt; \
    checkliveness(G(L),o1); }

Definition at line 161 of file lobject.h.

Referenced by addk(), lua_replace(), lua_setupvalue(), luaF_close(), and luaV_execute().

#define setobj2n   setobj

Definition at line 183 of file lobject.h.

Referenced by adjust_varargs(), lua_pushcclosure(), and luaE_newthread().

#define setobj2s   setobj
#define setobj2t   setobj

Definition at line 181 of file lobject.h.

Referenced by lua_rawset(), lua_rawseti(), luaV_execute(), and luaV_settable().

#define setobjs2s   setobj
#define setobjt2t   setobj

Definition at line 179 of file lobject.h.

Referenced by resize().

#define setptvalue ( L,
obj,
 ) 
Value:
{ TValue *i_o=(obj); \
    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TPROTO; \
    checkliveness(G(L),i_o); }

Definition at line 153 of file lobject.h.

#define setptvalue2s   setptvalue

Definition at line 177 of file lobject.h.

Referenced by combine(), LoadFunction(), and open_func().

#define setpvalue ( obj,
 )     { TValue *i_o=(obj); i_o->value.p=(x); i_o->tt=LUA_TLIGHTUSERDATA; }

Definition at line 122 of file lobject.h.

Referenced by f_Ccall(), and lua_pushlightuserdata().

#define setsvalue ( L,
obj,
 ) 
Value:
{ TValue *i_o=(obj); \
    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TSTRING; \
    checkliveness(G(L),i_o); }

Definition at line 128 of file lobject.h.

Referenced by lua_getfield(), lua_setfield(), luaH_setstr(), and luaK_stringK().

#define setsvalue2n   setsvalue

Definition at line 184 of file lobject.h.

Referenced by LoadConstants().

#define setsvalue2s   setsvalue
#define setthvalue ( L,
obj,
 ) 
Value:
{ TValue *i_o=(obj); \
    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TTHREAD; \
    checkliveness(G(L),i_o); }

Definition at line 138 of file lobject.h.

Referenced by lua_newthread(), and lua_pushthread().

#define setttype ( obj,
tt   )     (ttype(obj) = (tt))

Definition at line 186 of file lobject.h.

Referenced by removeentry().

#define setuvalue ( L,
obj,
 ) 
Value:
{ TValue *i_o=(obj); \
    i_o->value.gc=cast(GCObject *, (x)); i_o->tt=LUA_TUSERDATA; \
    checkliveness(G(L),i_o); }

Definition at line 133 of file lobject.h.

Referenced by GCTM(), and lua_newuserdata().

#define sizenode (  )     (twoto((t)->lsizenode))
#define svalue (  )     getstr(rawtsvalue(o))
#define thvalue (  )     check_exp(ttisthread(o), &(o)->value.gc->th)

Definition at line 101 of file lobject.h.

Referenced by lua_getfenv(), lua_setfenv(), lua_topointer(), and lua_tothread().

#define tsvalue (  )     (&rawtsvalue(o)->tsv)

Definition at line 95 of file lobject.h.

Referenced by lua_objlen(), lua_tolstring(), luaV_concat(), and luaV_execute().

#define ttisboolean (  )     (ttype(o) == LUA_TBOOLEAN)

Definition at line 84 of file lobject.h.

#define ttisfunction (  )     (ttype(o) == LUA_TFUNCTION)
#define ttislightuserdata (  )     (ttype(o) == LUA_TLIGHTUSERDATA)

Definition at line 87 of file lobject.h.

Referenced by lua_isuserdata().

#define ttisnil (  )     (ttype(o) == LUA_TNIL)
#define ttisnumber (  )     (ttype(o) == LUA_TNUMBER)
#define ttisstring (  )     (ttype(o) == LUA_TSTRING)
#define ttistable (  )     (ttype(o) == LUA_TTABLE)
#define ttisthread (  )     (ttype(o) == LUA_TTHREAD)

Definition at line 86 of file lobject.h.

Referenced by lua_tothread().

#define ttisuserdata (  )     (ttype(o) == LUA_TUSERDATA)

Definition at line 85 of file lobject.h.

Referenced by iscleared(), and lua_isuserdata().

#define ttype (  )     ((o)->tt)
#define TValuefields   Value value; int tt

Definition at line 71 of file lobject.h.

#define twoto (  )     (1<<(x))

Definition at line 360 of file lobject.h.

Referenced by resize(), and setnodevector().

#define uvalue (  )     (&rawuvalue(o)->uv)
#define VARARG_HASARG   1

Definition at line 257 of file lobject.h.

Referenced by adjust_varargs(), parlist(), and precheck().

#define VARARG_ISVARARG   2

Definition at line 258 of file lobject.h.

Referenced by luaY_parser(), parlist(), and symbexec().

#define VARARG_NEEDSARG   4

Definition at line 259 of file lobject.h.

Referenced by adjust_varargs(), parlist(), precheck(), simpleexp(), and symbexec().


Typedef Documentation

typedef union GCObject GCObject

Definition at line 36 of file lobject.h.

typedef TValue* StkId

Definition at line 193 of file lobject.h.

typedef struct lua_TValue TValue

Function Documentation

LUAI_FUNC void luaO_chunkid ( char *  out,
const char *  source,
size_t  len 
)

Definition at line 182 of file lobject.c.

Referenced by addinfo(), funcinfo(), info_tailcall(), and luaX_lexerror().

LUAI_FUNC int luaO_fb2int ( int  x  ) 

Definition at line 47 of file lobject.c.

Referenced by luaV_execute().

LUAI_FUNC int luaO_int2fb ( unsigned int  x  ) 

Definition at line 35 of file lobject.c.

References cast_int.

Referenced by constructor().

LUAI_FUNC int luaO_log2 ( unsigned int  x  ) 

Definition at line 54 of file lobject.c.

LUAI_FUNC const char* luaO_pushfstring ( lua_State L,
const char *  fmt,
  ... 
)
LUAI_FUNC const char* luaO_pushvfstring ( lua_State L,
const char *  fmt,
va_list  argp 
)
LUAI_FUNC int luaO_rawequalObj ( const TValue t1,
const TValue t2 
)
LUAI_FUNC int luaO_str2d ( const char *  s,
lua_Number result 
)

Definition at line 90 of file lobject.c.

References cast, cast_num, and lua_str2number.

Referenced by luaV_tonumber(), read_numeral(), and trydecpoint().


Variable Documentation

LUAI_DATA const TValue luaO_nilobject_

Definition at line 366 of file lobject.h.


ContextLogger2—ContextLogger2 Logger Daemon Internals—Generated on Mon May 2 13:50:00 2011 by Doxygen 1.6.1