lua5.4
ltests.h
浏览该文件的文档.
1 /*
2 ** $Id: ltests.h $
3 ** Internal Header for Debugging of the Lua Implementation
4 ** See Copyright Notice in lua.h
5 */
6 
7 #ifndef ltests_h
8 #define ltests_h
9 
10 
11 #include <stdio.h>
12 #include <stdlib.h>
13 
14 /* test Lua with compatibility code */
15 #define LUA_COMPAT_MATHLIB
16 #define LUA_COMPAT_LT_LE
17 
18 
19 #define LUA_DEBUG
20 
21 
22 /* turn on assertions */
23 #define LUAI_ASSERT
24 
25 
26 /* to avoid warnings, and to make sure value is really unused */
27 #define UNUSED(x) (x=0, (void)(x))
28 
29 
30 /* test for sizes in 'l_sprintf' (make sure whole buffer is available) */
31 #undef l_sprintf
32 #if !defined(LUA_USE_C89)
33 #define l_sprintf(s,sz,f,i) (memset(s,0xAB,sz), snprintf(s,sz,f,i))
34 #else
35 #define l_sprintf(s,sz,f,i) (memset(s,0xAB,sz), sprintf(s,f,i))
36 #endif
37 
38 
39 /* get a chance to test code without jump tables */
40 #define LUA_USE_JUMPTABLE 0
41 
42 
43 /* use 32-bit integers in random generator */
44 #define LUA_RAND32
45 
46 
47 /* memory-allocator control variables */
48 typedef struct Memcontrol {
49  int failnext;
50  unsigned long numblocks;
51  unsigned long total;
52  unsigned long maxmem;
53  unsigned long memlimit;
54  unsigned long countlimit;
55  unsigned long objcount[LUA_NUMTYPES];
57 
59 
60 
61 /*
62 ** generic variable for debug tricks
63 */
64 extern void *l_Trick;
65 
66 
67 
68 /*
69 ** Function to traverse and check all memory used by Lua
70 */
72 
73 /*
74 ** Function to print an object GC-friendly
75 */
76 struct GCObject;
78 
79 
80 /* test for lock/unlock */
81 
82 struct L_EXTRA { int lock; int *plock; };
83 #undef LUA_EXTRASPACE
84 #define LUA_EXTRASPACE sizeof(struct L_EXTRA)
85 #define getlock(l) cast(struct L_EXTRA*, lua_getextraspace(l))
86 #define luai_userstateopen(l) \
87  (getlock(l)->lock = 0, getlock(l)->plock = &(getlock(l)->lock))
88 #define luai_userstateclose(l) \
89  lua_assert(getlock(l)->lock == 1 && getlock(l)->plock == &(getlock(l)->lock))
90 #define luai_userstatethread(l,l1) \
91  lua_assert(getlock(l1)->plock == getlock(l)->plock)
92 #define luai_userstatefree(l,l1) \
93  lua_assert(getlock(l)->plock == getlock(l1)->plock)
94 #define lua_lock(l) lua_assert((*getlock(l)->plock)++ == 0)
95 #define lua_unlock(l) lua_assert(--(*getlock(l)->plock) == 0)
96 
97 
98 
100 
101 LUA_API void *debug_realloc (void *ud, void *block,
102  size_t osize, size_t nsize);
103 
104 #if defined(lua_c)
105 #define luaL_newstate() lua_newstate(debug_realloc, &l_memcontrol)
106 #define luaL_openlibs(L) \
107  { (luaL_openlibs)(L); \
108  luaL_requiref(L, "T", luaB_opentests, 1); \
109  lua_pop(L, 1); }
110 #endif
111 
112 
113 
114 /* change some sizes to give some bugs a chance */
115 
116 #undef LUAL_BUFFERSIZE
117 #define LUAL_BUFFERSIZE 23
118 #define MINSTRTABSIZE 2
119 #define MAXIWTHABS 3
120 
121 #define STRCACHE_N 23
122 #define STRCACHE_M 5
123 
124 #undef LUAI_USER_ALIGNMENT_T
125 #define LUAI_USER_ALIGNMENT_T union { char b[sizeof(void*) * 8]; }
126 
127 
128 /* make stack-overflow tests run faster */
129 #undef LUAI_MAXSTACK
130 #define LUAI_MAXSTACK 50000
131 
132 
133 /* test mode uses more stack space */
134 #undef LUAI_MAXCCALLS
135 #define LUAI_MAXCCALLS 180
136 
137 
138 /* force Lua to use its own implementations */
139 #undef lua_strx2number
140 #undef lua_number2strx
141 
142 
143 #endif
144 
tab_funcs
static const luaL_Reg tab_funcs[]
Definition: ltablib.c:412
LUA_VTHREAD
#define LUA_VTHREAD
Definition: lobject.h:240
stringtable
Definition: lstate.h:150
luaB_opentests
LUA_API int luaB_opentests(lua_State *L)
TAB_R
#define TAB_R
Definition: ltablib.c:27
luaF_getlocalname
const char * luaF_getlocalname(const Proto *f, int local_number, int pc)
Definition: lfunc.c:289
luaL_optstring
#define luaL_optstring(L, n, d)
Definition: lauxlib.h:139
lua_newuserdata
#define lua_newuserdata(L, s)
Definition: lua.h:411
GCScallfin
#define GCScallfin
Definition: lgc.h:38
getnum
static int getnum(const char **fmt, int df)
Definition: lstrlib.c:1403
s2v
#define s2v(o)
Definition: lobject.h:150
L_EXTRA
Definition: ltests.h:82
LUA_TFUNCTION
#define LUA_TFUNCTION
Definition: lua.h:71
iswhite
#define iswhite(x)
Definition: lgc.h:87
lua_pushliteral
#define lua_pushliteral(L, s)
Definition: lua.h:381
tofinalize
#define tofinalize(x)
Definition: lgc.h:92
Proto::upvalues
Upvaldesc * upvalues
Definition: lobject.h:547
sort_comp
static int sort_comp(lua_State *L, int a, int b)
Definition: ltablib.c:273
lua_rotate
LUA_API void lua_rotate(lua_State *L, int idx, int n)
Definition: lapi.c:217
lua_pcall
#define lua_pcall(L, n, r, f)
Definition: lua.h:287
LUA_OPLE
#define LUA_OPLE
Definition: lua.h:224
luaopen_base
LUAMOD_API int luaopen_base(lua_State *L)
Definition: lbaselib.c:515
G_SURVIVAL
#define G_SURVIVAL
Definition: lgc.h:107
TString::u
union TString::@1 u
lua_assert
#define lua_assert(c)
Definition: lauxlib.h:169
LUA_PRELOAD_TABLE
#define LUA_PRELOAD_TABLE
Definition: lauxlib.h:34
lua_Unsigned
LUA_UNSIGNED lua_Unsigned
Definition: lua.h:97
lua_geti
LUA_API int lua_geti(lua_State *L, int idx, lua_Integer n)
Definition: lapi.c:671
LUAI_FUNC
#define LUAI_FUNC
Definition: luaconf.h:307
cast
#define cast(t, exp)
Definition: llimits.h:123
CallInfo::previous
struct CallInfo * previous
Definition: lstate.h:163
IdxT
unsigned int IdxT
Definition: ltablib.c:222
Proto::code
Instruction * code
Definition: lobject.h:545
TAB_W
#define TAB_W
Definition: ltablib.c:28
GETARG_Bx
#define GETARG_Bx(i)
Definition: lopcodes.h:140
lua_setglobal
LUA_API void lua_setglobal(lua_State *L, const char *name)
Definition: lapi.c:823
UpVal::u
union UpVal::@3 u
lua_isyieldable
LUA_API int lua_isyieldable(lua_State *L)
Definition: ldo.c:736
LUA_MULTRET
#define LUA_MULTRET
Definition: lua.h:36
lua_resume
LUA_API int lua_resume(lua_State *L, lua_State *from, int nargs, int *nresults)
Definition: ldo.c:701
AbsLineInfo::pc
int pc
Definition: lobject.h:523
tmove
static int tmove(lua_State *L)
Definition: ltablib.c:114
LUA_NUMTAGS
#define LUA_NUMTAGS
Definition: lua.h:415
lstate.h
GETARG_B
#define GETARG_B(i)
Definition: lopcodes.h:128
novariant
#define novariant(t)
Definition: lobject.h:78
lua_tostring
#define lua_tostring(L, i)
Definition: lua.h:386
bitmask
#define bitmask(b)
Definition: lgc.h:63
Proto::sizeabslineinfo
int sizeabslineinfo
Definition: lobject.h:541
LUA_OK
#define LUA_OK
Definition: lua.h:49
lcode.h
l_randomizePivot
static unsigned int l_randomizePivot(void)
Definition: ltablib.c:244
lua_pushstring
LUA_API const char * lua_pushstring(lua_State *L, const char *s)
Definition: lapi.c:514
luaL_checkstring
#define luaL_checkstring(L, n)
Definition: lauxlib.h:138
lua_checkstack
LUA_API int lua_checkstack(lua_State *L, int n)
Definition: lapi.c:98
api_incr_top
#define api_incr_top(L)
Definition: lapi.h:16
lua_replace
#define lua_replace(L, idx)
Definition: lua.h:393
getproto
#define getproto(o)
Definition: lobject.h:644
lisdigit
#define lisdigit(c)
Definition: lctype.h:59
lua_getfield
LUA_API int lua_getfield(lua_State *L, int idx, const char *k)
Definition: lapi.c:665
LUAI_MAXALIGN
#define LUAI_MAXALIGN
Definition: luaconf.h:741
luaL_gsub
LUALIB_API const char * luaL_gsub(lua_State *L, const char *s, const char *p, const char *r)
Definition: lauxlib.c:990
tpack
static int tpack(lua_State *L)
Definition: ltablib.c:180
GCSswpallgc
#define GCSswpallgc
Definition: lgc.h:34
global_State::l_registry
TValue l_registry
Definition: lstate.h:227
gco2ts
#define gco2ts(o)
Definition: lstate.h:330
global_State::old1
GCObject * old1
Definition: lstate.h:252
LUA_TSTRING
#define LUA_TSTRING
Definition: lua.h:69
luaL_buffinit
LUALIB_API void luaL_buffinit(lua_State *L, luaL_Buffer *B)
Definition: lauxlib.c:620
LUA_TTABLE
#define LUA_TTABLE
Definition: lua.h:70
checkfield
static int checkfield(lua_State *L, const char *key, int n)
Definition: ltablib.c:36
Header
struct Header Header
LocVar::varname
TString * varname
Definition: lobject.h:506
GETARG_A
#define GETARG_A(i)
Definition: lopcodes.h:125
lua_getupvalue
LUA_API const char * lua_getupvalue(lua_State *L, int funcindex, int n)
Definition: lapi.c:1359
lua_pushinteger
LUA_API void lua_pushinteger(lua_State *L, lua_Integer n)
Definition: lapi.c:489
Memcontrol::maxmem
unsigned long maxmem
Definition: ltests.h:52
ltable.h
LUA_GNAME
#define LUA_GNAME
Definition: lauxlib.h:19
luaL_ref
LUALIB_API int luaL_ref(lua_State *L, int t)
Definition: lauxlib.c:650
LUA_MASKLINE
#define LUA_MASKLINE
Definition: lua.h:441
lua_rawgetp
LUA_API int lua_rawgetp(lua_State *L, int idx, const void *p)
Definition: lapi.c:728
lua_unlock
#define lua_unlock(L)
Definition: llimits.h:254
stringtable::hash
TString ** hash
Definition: lstate.h:151
lua_remove
#define lua_remove(L, idx)
Definition: lua.h:391
global_State::currentwhite
lu_byte currentwhite
Definition: lstate.h:230
isempty
#define isempty(v)
Definition: lobject.h:195
lua_toclose
LUA_API void lua_toclose(lua_State *L, int idx)
Definition: lapi.c:1244
lua_pop
#define lua_pop(L, n)
Definition: lua.h:364
getnodekey
#define getnodekey(L, obj, node)
Definition: lobject.h:695
Memcontrol::total
unsigned long total
Definition: ltests.h:51
Proto::p
struct Proto ** p
Definition: lobject.h:546
lua_iscfunction
LUA_API int lua_iscfunction(lua_State *L, int idx)
Definition: lapi.c:273
luaL_loadstring
LUALIB_API int luaL_loadstring(lua_State *L, const char *s)
Definition: lauxlib.c:827
obj2gco
#define obj2gco(v)
Definition: lstate.h:347
gcvalue
#define gcvalue(o)
Definition: lobject.h:283
luaL_typename
#define luaL_typename(L, i)
Definition: lauxlib.h:141
gnode
#define gnode(t, i)
Definition: ltable.h:13
lu_mem
unsigned long lu_mem
Definition: llimits.h:30
lua_pushlstring
LUA_API const char * lua_pushlstring(lua_State *L, const char *s, size_t len)
Definition: lapi.c:502
set2
static void set2(lua_State *L, IdxT i, IdxT j)
Definition: ltablib.c:263
lua_gettable
LUA_API int lua_gettable(lua_State *L, int idx)
Definition: lapi.c:650
luaL_checkoption
LUALIB_API int luaL_checkoption(lua_State *L, int arg, const char *def, const char *const lst[])
Definition: lauxlib.c:360
G_TOUCHED1
#define G_TOUCHED1
Definition: lgc.h:111
lua_concat
LUA_API void lua_concat(lua_State *L, int n)
Definition: lapi.c:1260
LUA_TBOOLEAN
#define LUA_TBOOLEAN
Definition: lua.h:66
Memcontrol
struct Memcontrol Memcontrol
Header
Definition: lstrlib.c:1374
Udata::uv
UValue uv[1]
Definition: lobject.h:445
Udata::nuvalue
unsigned short nuvalue
Definition: lobject.h:441
TESTBIT
#define TESTBIT
Definition: lgc.h:80
luaL_checklstring
LUALIB_API const char * luaL_checklstring(lua_State *L, int arg, size_t *len)
Definition: lauxlib.c:402
lua_rawlen
LUA_API lua_Unsigned lua_rawlen(lua_State *L, int idx)
Definition: lapi.c:402
lua_isnoneornil
#define lua_isnoneornil(L, n)
Definition: lua.h:379
luaL_addlstring
LUALIB_API void luaL_addlstring(luaL_Buffer *B, const char *s, size_t l)
Definition: lauxlib.c:570
TAB_RW
#define TAB_RW
Definition: ltablib.c:30
gco2u
#define gco2u(o)
Definition: lstate.h:332
lua_Number
LUA_NUMBER lua_Number
Definition: lua.h:90
luaL_loadbuffer
#define luaL_loadbuffer(L, s, sz, n)
Definition: lauxlib.h:153
isold
#define isold(o)
Definition: lgc.h:118
iABx
@ iABx
Definition: lopcodes.h:32
lua_isstring
LUA_API int lua_isstring(lua_State *L, int idx)
Definition: lapi.c:292
lua_Debug::currentline
int currentline
Definition: lua.h:476
lua_atpanic
LUA_API lua_CFunction lua_atpanic(lua_State *L, lua_CFunction panicf)
Definition: lapi.c:136
Upvaldesc::name
TString * name
Definition: lobject.h:494
lua_type
LUA_API int lua_type(lua_State *L, int idx)
Definition: lapi.c:260
luaL_loadfile
#define luaL_loadfile(L, f)
Definition: lauxlib.h:94
luaopen_package
LUAMOD_API int luaopen_package(lua_State *L)
Definition: loadlib.c:736
luaopen_math
LUAMOD_API int luaopen_math(lua_State *L)
Definition: lmathlib.c:750
GETARG_k
#define GETARG_k(i)
Definition: lopcodes.h:137
luaC_runtilstate
void luaC_runtilstate(lua_State *L, int statesmask)
Definition: lgc.c:1631
global_State::grayagain
GCObject * grayagain
Definition: lstate.h:244
Proto::sizecode
int sizecode
Definition: lobject.h:537
l_setbit
#define l_setbit(x, b)
Definition: lgc.h:65
lua_setmetatable
LUA_API int lua_setmetatable(lua_State *L, int objindex)
Definition: lapi.c:909
cast_voidp
#define cast_voidp(i)
Definition: llimits.h:126
lua_isthread
#define lua_isthread(L, n)
Definition: lua.h:377
luaopen_debug
LUAMOD_API int luaopen_debug(lua_State *L)
Definition: ldblib.c:478
StackValue
Definition: lobject.h:141
global_State::gcstate
lu_byte gcstate
Definition: lstate.h:231
lua_tothread
LUA_API lua_State * lua_tothread(lua_State *L, int idx)
Definition: lapi.c:438
LFIELDS_PER_FLUSH
#define LFIELDS_PER_FLUSH
Definition: lopcodes.h:390
L_EXTRA::plock
int * plock
Definition: ltests.h:82
GCSpropagate
#define GCSpropagate
Definition: lgc.h:31
lua_pushnumber
LUA_API void lua_pushnumber(lua_State *L, lua_Number n)
Definition: lapi.c:481
luaopen_table
LUAMOD_API int luaopen_table(lua_State *L)
Definition: ltablib.c:424
Proto::sizep
int sizep
Definition: lobject.h:539
G_OLD0
#define G_OLD0
Definition: lgc.h:108
luaL_pushresult
LUALIB_API void luaL_pushresult(luaL_Buffer *B)
Definition: lauxlib.c:584
UValue::uv
TValue uv
Definition: lobject.h:430
global_State::sweepgc
GCObject ** sweepgc
Definition: lstate.h:241
lua_Debug
Definition: lua.h:469
Proto::source
TString * source
Definition: lobject.h:551
lua_isfunction
#define lua_isfunction(L, n)
Definition: lua.h:372
lua_isnumber
LUA_API int lua_isnumber(lua_State *L, int idx)
Definition: lapi.c:285
Table::lastfree
Node * lastfree
Definition: lobject.h:721
GETARG_sJ
#define GETARG_sJ(i)
Definition: lopcodes.h:150
luaL_testudata
LUALIB_API void * luaL_testudata(lua_State *L, int ud, const char *tname)
Definition: lauxlib.c:330
choosePivot
static IdxT choosePivot(IdxT lo, IdxT up, unsigned int rnd)
Definition: ltablib.c:332
UNUSED
#define UNUSED(x)
Definition: llimits.h:118
LUA_VTABLE
#define LUA_VTABLE
Definition: lobject.h:655
global_State::allgc
GCObject * allgc
Definition: lstate.h:240
lua_istable
#define lua_istable(L, n)
Definition: lua.h:373
Proto::numparams
lu_byte numparams
Definition: lobject.h:532
tremove
static int tremove(lua_State *L)
Definition: ltablib.c:90
checktab
static void checktab(lua_State *L, int arg, int what)
Definition: ltablib.c:46
GCSpause
#define GCSpause
Definition: lgc.h:39
lua_Alloc
void *(* lua_Alloc)(void *ud, void *ptr, size_t osize, size_t nsize)
Definition: lua.h:125
lua.h
lua_yield
#define lua_yield(L, n)
Definition: lua.h:305
lua_arith
LUA_API void lua_arith(lua_State *L, int op)
Definition: lapi.c:311
MAXARG_Bx
#define MAXARG_Bx
Definition: lopcodes.h:74
LUA_MASKCOUNT
#define LUA_MASKCOUNT
Definition: lua.h:442
UpVal
Definition: lobject.h:606
lua_topointer
LUA_API const void * lua_topointer(lua_State *L, int idx)
Definition: lapi.c:451
gval
#define gval(n)
Definition: ltable.h:14
LUA_OPEQ
#define LUA_OPEQ
Definition: lua.h:222
luaL_newmetatable
LUALIB_API int luaL_newmetatable(lua_State *L, const char *tname)
Definition: lauxlib.c:311
ttisnil
#define ttisnil(v)
Definition: lobject.h:171
lua_len
LUA_API void lua_len(lua_State *L, int idx)
Definition: lapi.c:1274
tconcat
static int tconcat(lua_State *L)
Definition: ltablib.c:155
lua_rawset
LUA_API void lua_rawset(lua_State *L, int idx)
Definition: lapi.c:885
Memcontrol
Definition: ltests.h:48
lua_yieldk
LUA_API int lua_yieldk(lua_State *L, int nresults, lua_KContext ctx, lua_KFunction k)
Definition: ldo.c:741
lua_setwarnf
void lua_setwarnf(lua_State *L, lua_WarnFunction f, void *ud)
Definition: lapi.c:1302
L_EXTRA::lock
int lock
Definition: ltests.h:82
lua_insert
#define lua_insert(L, idx)
Definition: lua.h:389
Proto::abslineinfo
AbsLineInfo * abslineinfo
Definition: lobject.h:549
lua_rawget
LUA_API int lua_rawget(lua_State *L, int idx)
Definition: lapi.c:708
upisopen
#define upisopen(up)
Definition: lfunc.h:32
TString::hnext
struct TString * hnext
Definition: lobject.h:371
lua_State::stack_last
StkId stack_last
Definition: lstate.h:281
lua_tointeger
#define lua_tointeger(L, i)
Definition: lua.h:362
lua_setfield
LUA_API void lua_setfield(lua_State *L, int idx, const char *k)
Definition: lapi.c:847
Memcontrol::objcount
unsigned long objcount[LUA_NUMTYPES]
Definition: ltests.h:55
lua_pushcclosure
LUA_API void lua_pushcclosure(lua_State *L, lua_CFunction fn, int n)
Definition: lapi.c:555
lua_warning
void lua_warning(lua_State *L, const char *msg, int tocont)
Definition: lapi.c:1310
CClosure
Definition: lobject.h:624
AbsLineInfo::line
int line
Definition: lobject.h:524
getage
#define getage(o)
Definition: lgc.h:116
luaopen_io
LUAMOD_API int luaopen_io(lua_State *L)
Definition: liolib.c:818
ttypename
#define ttypename(x)
Definition: ltm.h:69
luaO_ceillog2
int luaO_ceillog2(unsigned int x)
Definition: lobject.c:35
G
#define G(L)
Definition: lstate.h:298
luaL_Reg
Definition: lauxlib.h:37
LUA_NUMTYPES
#define LUA_NUMTYPES
Definition: lua.h:75
LUA_VLNGSTR
#define LUA_VLNGSTR
Definition: lobject.h:339
LUA_VSHRSTR
#define LUA_VSHRSTR
Definition: lobject.h:338
lua_sethook
LUA_API void lua_sethook(lua_State *L, lua_Hook func, int mask, int count)
Definition: ldebug.c:135
lua_newstate
LUA_API lua_State * lua_newstate(lua_Alloc f, void *ud)
Definition: lstate.c:346
TString
Definition: lobject.h:364
lua_KContext
LUA_KCONTEXT lua_KContext
Definition: lua.h:100
debug_realloc
LUA_API void * debug_realloc(void *ud, void *block, size_t osize, size_t nsize)
GETARG_sBx
#define GETARG_sBx(i)
Definition: lopcodes.h:146
luaL_Reg::name
const char * name
Definition: lauxlib.h:38
lprefix.h
gco2t
#define gco2t(o)
Definition: lstate.h:337
Memcontrol::memlimit
unsigned long memlimit
Definition: ltests.h:53
lua_rawgeti
LUA_API int lua_rawgeti(lua_State *L, int idx, lua_Integer n)
Definition: lapi.c:720
setsvalue2s
#define setsvalue2s(L, o, s)
Definition: lobject.h:355
ldebug.h
global_State::finobj
GCObject * finobj
Definition: lstate.h:242
luaL_optlstring
LUALIB_API const char * luaL_optlstring(lua_State *L, int arg, const char *def, size_t *len)
Definition: lauxlib.c:409
Proto::sizek
int sizek
Definition: lobject.h:536
CallInfo::func
StkId func
Definition: lstate.h:161
lua_lock
#define lua_lock(L)
Definition: llimits.h:253
getstr
#define getstr(ts)
Definition: lobject.h:381
GCSatomic
#define GCSatomic
Definition: lgc.h:33
lua_callk
LUA_API void lua_callk(lua_State *L, int nargs, int nresults, lua_KContext ctx, lua_KFunction k)
Definition: lapi.c:979
lua_pushfstring
LUA_API const char * lua_pushfstring(lua_State *L, const char *fmt,...)
Definition: lapi.c:542
G_TOUCHED2
#define G_TOUCHED2
Definition: lgc.h:112
lua_checkmemory
LUAI_FUNC int lua_checkmemory(lua_State *L)
luaL_checkany
LUALIB_API void luaL_checkany(lua_State *L, int arg)
Definition: lauxlib.c:396
righttt
#define righttt(obj)
Definition: lobject.h:96
G_OLD
#define G_OLD
Definition: lgc.h:110
Proto::lineinfo
ls_byte * lineinfo
Definition: lobject.h:548
CClosure::upvalue
TValue upvalue[1]
Definition: lobject.h:627
lua_rawsetp
LUA_API void lua_rawsetp(lua_State *L, int idx, const void *p)
Definition: lapi.c:890
Table
Definition: lobject.h:714
LUA_API
#define LUA_API
Definition: luaconf.h:277
Udata
Definition: lobject.h:439
lua_isuserdata
LUA_API int lua_isuserdata(lua_State *L, int idx)
Definition: lapi.c:298
clLvalue
#define clLvalue(o)
Definition: lobject.h:581
LUA_OPLT
#define LUA_OPLT
Definition: lua.h:223
LUA_REGISTRYINDEX
#define LUA_REGISTRYINDEX
Definition: lua.h:44
checkstack
static void checkstack(lua_State *L, lua_State *L1, int n)
Definition: ldblib.c:35
isgray
#define isgray(x)
Definition: lgc.h:89
lua_touserdata
LUA_API void * lua_touserdata(lua_State *L, int idx)
Definition: lapi.c:432
OFFSET_sBx
#define OFFSET_sBx
Definition: lopcodes.h:77
lua_State::openupval
UpVal * openupval
Definition: lstate.h:283
luaL_Buffer
Definition: lauxlib.h:182
luaL_opt
#define luaL_opt(L, f, n, d)
Definition: lauxlib.h:151
CallInfo::l
struct CallInfo::@11::@13 l
luaL_argcheck
#define luaL_argcheck(L, cond, arg, extramsg)
Definition: lauxlib.h:132
cast_charp
#define cast_charp(i)
Definition: llimits.h:133
gco2lcl
#define gco2lcl(o)
Definition: lstate.h:333
LUA_MASKCALL
#define LUA_MASKCALL
Definition: lua.h:439
CallInfo
Definition: lstate.h:160
luaH_realasize
LUAI_FUNC unsigned int luaH_realasize(const Table *t)
Definition: ltable.c:222
Table::metatable
struct Table * metatable
Definition: lobject.h:722
tinsert
static int tinsert(lua_State *L)
Definition: ltablib.c:61
global_State
Definition: lstate.h:219
lua_gettop
LUA_API int lua_gettop(lua_State *L)
Definition: lapi.c:168
lua_State
Definition: lstate.h:273
global_State::finobjold1
GCObject * finobjold1
Definition: lstate.h:256
lua_getallocf
LUA_API lua_Alloc lua_getallocf(lua_State *L, void **ud)
Definition: lapi.c:1284
lua_Integer
LUA_INTEGER lua_Integer
Definition: lua.h:94
global_State::gckind
lu_byte gckind
Definition: lstate.h:232
cast_uchar
#define cast_uchar(i)
Definition: llimits.h:131
allocsizenode
#define allocsizenode(t)
Definition: ltable.h:31
lua_isnil
#define lua_isnil(L, n)
Definition: lua.h:375
luaopen_os
LUAMOD_API int luaopen_os(lua_State *L)
Definition: loslib.c:426
lua_settop
LUA_API void lua_settop(lua_State *L, int idx)
Definition: lapi.c:173
LClosure::p
struct Proto * p
Definition: lobject.h:633
luaopen_string
LUAMOD_API int luaopen_string(lua_State *L)
Definition: lstrlib.c:1797
isdummy
#define isdummy(t)
Definition: ltable.h:27
GETARG_Ax
#define GETARG_Ax(i)
Definition: lopcodes.h:143
MAXARG_Ax
#define MAXARG_Ax
Definition: lopcodes.h:83
lauxlib.h
lualib.h
lua_pushboolean
LUA_API void lua_pushboolean(lua_State *L, int b)
Definition: lapi.c:581
sort
static int sort(lua_State *L)
Definition: ltablib.c:397
lua_pushvalue
LUA_API void lua_pushvalue(lua_State *L, int idx)
Definition: lapi.c:246
TValue
Definition: lobject.h:65
gco2upv
#define gco2upv(o)
Definition: lstate.h:340
LUAI_IS32INT
#define LUAI_IS32INT
Definition: luaconf.h:76
luaL_len
LUALIB_API lua_Integer luaL_len(lua_State *L, int idx)
Definition: lauxlib.c:861
luaL_checktype
LUALIB_API void luaL_checktype(lua_State *L, int arg, int t)
Definition: lauxlib.c:390
lua_close
LUA_API void lua_close(lua_State *L)
Definition: lstate.c:402
UpVal::v
TValue * v
Definition: lobject.h:609
Table::array
TValue * array
Definition: lobject.h:719
keepinvariant
#define keepinvariant(g)
Definition: lgc.h:54
Proto::k
TValue * k
Definition: lobject.h:544
keyisnil
#define keyisnil(node)
Definition: lobject.h:733
sizenode
#define sizenode(t)
Definition: lobject.h:768
lua_Debug::event
int event
Definition: lua.h:470
Table::alimit
unsigned int alimit
Definition: lobject.h:718
LUA_VPROTO
#define LUA_VPROTO
Definition: lobject.h:487
Memcontrol::numblocks
unsigned long numblocks
Definition: ltests.h:50
lua_pushcfunction
#define lua_pushcfunction(L, f)
Definition: lua.h:370
iABC
@ iABC
Definition: lopcodes.h:32
lua_getmetatable
LUA_API int lua_getmetatable(lua_State *L, int objindex)
Definition: lapi.c:751
LClosure
Definition: lobject.h:631
gco2p
#define gco2p(o)
Definition: lstate.h:338
Proto::maxstacksize
lu_byte maxstacksize
Definition: lobject.h:534
global_State::reallyold
GCObject * reallyold
Definition: lstate.h:253
cast_sizet
#define cast_sizet(i)
Definition: llimits.h:134
gnext
#define gnext(n)
Definition: ltable.h:15
LUA_YIELD
#define LUA_YIELD
Definition: lua.h:50
testbit
#define testbit(x, b)
Definition: lgc.h:67
lua_call
#define lua_call(L, n, r)
Definition: lua.h:283
tsvalue
#define tsvalue(o)
Definition: lobject.h:347
lua_printobj
LUAI_FUNC void lua_printobj(lua_State *L, struct GCObject *o)
GCSswpfinobj
#define GCSswpfinobj
Definition: lgc.h:35
Proto::sizeupvalues
int sizeupvalues
Definition: lobject.h:535
tunpack
static int tunpack(lua_State *L)
Definition: ltablib.c:193
LUA_MASKRET
#define LUA_MASKRET
Definition: lua.h:440
Instruction
l_uint32 Instruction
Definition: llimits.h:194
lua_pcallk
LUA_API int lua_pcallk(lua_State *L, int nargs, int nresults, int errfunc, lua_KContext ctx, lua_KFunction k)
Definition: lapi.c:1018
block
static void block(LexState *ls)
Definition: lparser.c:1293
luaopen_coroutine
LUAMOD_API int luaopen_coroutine(lua_State *L)
Definition: lcorolib.c:203
isJ
@ isJ
Definition: lopcodes.h:32
OpCode
OpCode
Definition: lopcodes.h:196
LUA_TNIL
#define LUA_TNIL
Definition: lua.h:65
lua_longassert
#define lua_longassert(c)
Definition: llimits.h:103
G_OLD1
#define G_OLD1
Definition: lgc.h:109
Memcontrol::countlimit
unsigned long countlimit
Definition: ltests.h:54
LUAMOD_API
#define LUAMOD_API
Definition: luaconf.h:286
lua_State::ci
CallInfo * ci
Definition: lstate.h:280
lua_State::stack
StkId stack
Definition: lstate.h:282
isblack
#define isblack(x)
Definition: lgc.h:88
lua_xmove
LUA_API void lua_xmove(lua_State *from, lua_State *to, int n)
Definition: lapi.c:120
getOpMode
#define getOpMode(m)
Definition: lopcodes.h:370
aux_getn
#define aux_getn(L, n, w)
Definition: ltablib.c:33
lua_settable
LUA_API void lua_settable(lua_State *L, int idx)
Definition: lapi.c:831
resetbit
#define resetbit(x, b)
Definition: lgc.h:66
RANLIMIT
#define RANLIMIT
Definition: ltablib.c:260
lua_rawseti
LUA_API void lua_rawseti(lua_State *L, int idx, lua_Integer n)
Definition: lapi.c:897
luaL_optinteger
LUALIB_API lua_Integer luaL_optinteger(lua_State *L, int arg, lua_Integer def)
Definition: lauxlib.c:452
GET_OPCODE
#define GET_OPCODE(i)
Definition: lopcodes.h:114
gco2th
#define gco2th(o)
Definition: lstate.h:339
isdead
#define isdead(g, v)
Definition: lgc.h:96
luaL_unref
LUALIB_API void luaL_unref(lua_State *L, int t, int ref)
Definition: lauxlib.c:678
opnames
static const char *const opnames[]
Definition: lopnames.h:15
Proto
Definition: lobject.h:530
GCSenteratomic
#define GCSenteratomic
Definition: lgc.h:32
global_State::finobjrold
GCObject * finobjrold
Definition: lstate.h:257
lua_getglobal
LUA_API int lua_getglobal(lua_State *L, const char *name)
Definition: lapi.c:642
NUM_OPCODES
#define NUM_OPCODES
Definition: lopcodes.h:312
lua_next
LUA_API int lua_next(lua_State *L, int idx)
Definition: lapi.c:1227
luaL_checkstack
LUALIB_API void luaL_checkstack(lua_State *L, int space, const char *msg)
Definition: lauxlib.c:380
lua_tonumber
#define lua_tonumber(L, i)
Definition: lua.h:361
luaL_newlib
#define luaL_newlib(L, l)
Definition: lauxlib.h:129
lua_islightuserdata
#define lua_islightuserdata(L, n)
Definition: lua.h:374
checkliveness
#define checkliveness(L, obj)
Definition: lobject.h:104
luaL_checknumber
LUALIB_API lua_Number luaL_checknumber(lua_State *L, int arg)
Definition: lauxlib.c:420
lua_seti
LUA_API void lua_seti(lua_State *L, int idx, lua_Integer n)
Definition: lapi.c:853
luaL_error
LUALIB_API int luaL_error(lua_State *L, const char *fmt,...)
Definition: lauxlib.c:234
luaL_tolstring
LUALIB_API const char * luaL_tolstring(lua_State *L, int idx, size_t *len)
Definition: lauxlib.c:873
l_Trick
void * l_Trick
luaL_requiref
LUALIB_API void luaL_requiref(lua_State *L, const char *modname, lua_CFunction openf, int glb)
Definition: lauxlib.c:957
setobj2s
#define setobj2s(L, o1, o2)
Definition: lobject.h:129
UpVal::open
struct UpVal::@3::@4 open
lstring.h
lua_tocfunction
LUA_API lua_CFunction lua_tocfunction(lua_State *L, int idx)
Definition: lapi.c:414
lua_newtable
#define lua_newtable(L)
Definition: lua.h:366
stringtable::nuse
int nuse
Definition: lstate.h:152
sof
#define sof(e)
Definition: ltablib.c:236
lua_isnone
#define lua_isnone(L, n)
Definition: lua.h:378
gco2ccl
#define gco2ccl(o)
Definition: lstate.h:334
ttisnumber
#define ttisnumber(o)
Definition: lobject.h:304
lua_newuserdatauv
LUA_API void * lua_newuserdatauv(lua_State *L, size_t size, int nuvalue)
Definition: lapi.c:1318
luaG_getfuncline
int luaG_getfuncline(const Proto *f, int pc)
Definition: ldebug.c:87
luaL_checkinteger
LUALIB_API lua_Integer luaL_checkinteger(lua_State *L, int arg)
Definition: lauxlib.c:442
G_NEW
#define G_NEW
Definition: lgc.h:106
lua_resetthread
int lua_resetthread(lua_State *L)
Definition: lstate.c:324
lapi.h
GCSswptobefnz
#define GCSswptobefnz
Definition: lgc.h:36
luaL_getsubtable
LUALIB_API int luaL_getsubtable(lua_State *L, int idx, const char *fname)
Definition: lauxlib.c:937
stringtable::size
int size
Definition: lstate.h:153
iAx
@ iAx
Definition: lopcodes.h:32
l_memcontrol
LUA_API Memcontrol l_memcontrol
Definition: ltests.h:58
lua_CFunction
int(* lua_CFunction)(lua_State *L)
Definition: lua.h:106
global_State::mainthread
struct lua_State * mainthread
Definition: lstate.h:260
lua_pushnil
LUA_API void lua_pushnil(lua_State *L)
Definition: lapi.c:473
Node
Definition: lobject.h:676
issweepphase
#define issweepphase(g)
Definition: lgc.h:42
lmem.h
lua_State::top
StkId top
Definition: lstate.h:278
Udata::metatable
struct Table * metatable
Definition: lobject.h:443
global_State::fixedgc
GCObject * fixedgc
Definition: lstate.h:249
LUA_VLCL
#define LUA_VLCL
Definition: lobject.h:568
global_State::tobefnz
GCObject * tobefnz
Definition: lstate.h:248
lua_toboolean
LUA_API int lua_toboolean(lua_State *L, int idx)
Definition: lapi.c:375
GCObject
Definition: lobject.h:270
GCSswpend
#define GCSswpend
Definition: lgc.h:37
isLua
#define isLua(ci)
Definition: lstate.h:206
Memcontrol::failnext
int failnext
Definition: ltests.h:49
lua_setallocf
LUA_API void lua_setallocf(lua_State *L, lua_Alloc f, void *ud)
Definition: lapi.c:1294
partition
static IdxT partition(lua_State *L, IdxT lo, IdxT up)
Definition: ltablib.c:296
lua_State::nci
unsigned short nci
Definition: lstate.h:277
LUA_VUPVAL
#define LUA_VUPVAL
Definition: lobject.h:564
KGC_INC
#define KGC_INC
Definition: lstate.h:146
KGC_GEN
#define KGC_GEN
Definition: lstate.h:147
lopnames.h
global_State::allweak
GCObject * allweak
Definition: lstate.h:247
auxsort
static void auxsort(lua_State *L, IdxT lo, IdxT up, unsigned int rnd)
Definition: ltablib.c:343
TAB_L
#define TAB_L
Definition: ltablib.c:29
stacksize
#define stacksize(th)
Definition: lstate.h:142
MEMERRMSG
#define MEMERRMSG
Definition: lstring.h:19
lua_State::nCcalls
l_uint32 nCcalls
Definition: lstate.h:290
lua_upvalueindex
#define lua_upvalueindex(i)
Definition: lua.h:45
luaL_addvalue
LUALIB_API void luaL_addvalue(luaL_Buffer *B)
Definition: lauxlib.c:609
Proto::locvars
LocVar * locvars
Definition: lobject.h:550
CallInfo::top
StkId top
Definition: lstate.h:162
lctype.h
global_State::finobjsur
GCObject * finobjsur
Definition: lstate.h:255
lua_compare
LUA_API int lua_compare(lua_State *L, int index1, int index2, int op)
Definition: lapi.c:327
iAsBx
@ iAsBx
Definition: lopcodes.h:32
GETARG_C
#define GETARG_C(i)
Definition: lopcodes.h:132
LUA_VCCL
#define LUA_VCCL
Definition: lobject.h:570
hvalue
#define hvalue(o)
Definition: lobject.h:659
lua_absindex
LUA_API int lua_absindex(lua_State *L, int idx)
Definition: lapi.c:161
lua_createtable
LUA_API void lua_createtable(lua_State *L, int narray, int nrec)
Definition: lapi.c:738
LUA_VUSERDATA
#define LUA_VUSERDATA
Definition: lobject.h:409
iscollectable
#define iscollectable(o)
Definition: lobject.h:278
Proto::sizelocvars
int sizelocvars
Definition: lobject.h:540
lua_pushlightuserdata
LUA_API void lua_pushlightuserdata(lua_State *L, void *p)
Definition: lapi.c:592
CallInfo::u
union CallInfo::@11 u
global_State::gray
GCObject * gray
Definition: lstate.h:243
global_State::ephemeron
GCObject * ephemeron
Definition: lstate.h:246
lua_copy
LUA_API void lua_copy(lua_State *L, int fromidx, int toidx)
Definition: lapi.c:231
Table::node
Node * node
Definition: lobject.h:720
LClosure::upvals
UpVal * upvals[1]
Definition: lobject.h:634
lopcodes.h
global_State::weak
GCObject * weak
Definition: lstate.h:245
lfunc.h
ABSLINEINFO
#define ABSLINEINFO
Definition: ldebug.h:27
global_State::survival
GCObject * survival
Definition: lstate.h:251
cast_num
#define cast_num(i)
Definition: llimits.h:127
lua_newthread
LUA_API lua_State * lua_newthread(lua_State *L)
Definition: lstate.c:282
ldo.h
lua_setupvalue
LUA_API const char * lua_setupvalue(lua_State *L, int funcindex, int n)
Definition: lapi.c:1373
addfield
static void addfield(lua_State *L, luaL_Buffer *b, lua_Integer i)
Definition: ltablib.c:146
lua_error
LUA_API int lua_error(lua_State *L)
Definition: lapi.c:1212
cast_int
#define cast_int(i)
Definition: llimits.h:128
ttisstring
#define ttisstring(o)
Definition: lobject.h:341