lua/lobject.h File Reference

#include <stdarg.h>
#include "llimits.h"
#include "lua.h"
Include dependency graph for lobject.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  GCheader
union  Value
struct  lua_TValue
union  TString
union  Udata
struct  Proto
struct  LocVar
struct  UpVal
struct  CClosure
struct  LClosure
union  Closure
union  TKey
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(tsvalue(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 GCheader GCheader
typedef struct lua_TValue TValue
typedef TValueStkId
typedef union TString TString
typedef union Udata Udata
typedef struct Proto Proto
typedef struct LocVar LocVar
typedef struct UpVal UpVal
typedef struct CClosure CClosure
typedef struct LClosure LClosure
typedef union Closure Closure
typedef union TKey TKey
typedef struct Node Node
typedef struct Table Table

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)

Definition at line 100 of file lobject.h.

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

#define ceillog2 (  )     (luaO_log2((x)-1) + 1)

Definition at line 367 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 355 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 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(tsvalue(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 359 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 struct CClosure CClosure
typedef union Closure Closure
typedef struct GCheader GCheader
typedef union GCObject GCObject

Definition at line 36 of file lobject.h.

typedef struct LClosure LClosure
typedef struct LocVar LocVar
typedef struct Node Node
typedef struct Proto Proto
typedef TValue* StkId

Definition at line 193 of file lobject.h.

typedef struct Table Table
typedef union TKey TKey
typedef union TString TString
typedef struct lua_TValue TValue
typedef union Udata Udata
typedef struct UpVal UpVal

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 
)

Definition at line 72 of file lobject.c.

References bvalue, gcvalue, iscollectable, lua_assert, nvalue, pvalue, and ttype.

Referenced by addk(), call_orderTM(), findindex(), get_compTM(), lua_rawequal(), and luaH_get().

LUAI_FUNC int luaO_str2d ( const char *  s,
lua_Number *  result 
)

Definition at line 90 of file lobject.c.

References cast, and cast_num.

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


Variable Documentation

LUAI_DATA const TValue luaO_nilobject_

Definition at line 365 of file lobject.h.

Generated on Sun Mar 7 02:02:01 2010 for rpm by  doxygen 1.6.3