lua5.4
ltable.h
浏览该文件的文档.
1 /*
2 ** $Id: ltable.h $
3 ** Lua tables (hash)
4 ** See Copyright Notice in lua.h
5 */
6 
7 #ifndef ltable_h
8 #define ltable_h
9 
10 #include "lobject.h"
11 
12 
13 #define gnode(t,i) (&(t)->node[i])
14 #define gval(n) (&(n)->i_val)
15 #define gnext(n) ((n)->u.next)
16 
17 
18 /*
19 ** Clear all bits of fast-access metamethods, which means that the table
20 ** may have any of these metamethods. (First access that fails after the
21 ** clearing will set the bit again.)
22 */
23 #define invalidateTMcache(t) ((t)->flags &= ~maskflags)
24 
25 
26 /* true when 't' is using 'dummynode' as its hash part */
27 #define isdummy(t) ((t)->lastfree == NULL)
28 
29 
30 /* allocated size for hash nodes */
31 #define allocsizenode(t) (isdummy(t) ? 0 : sizenode(t))
32 
33 
34 /* returns the Node, given the value of a table entry */
35 #define nodefromval(v) cast(Node *, (v))
36 
37 
40  TValue *value);
42 LUAI_FUNC const TValue *luaH_getstr (Table *t, TString *key);
43 LUAI_FUNC const TValue *luaH_get (Table *t, const TValue *key);
44 LUAI_FUNC void luaH_newkey (lua_State *L, Table *t, const TValue *key,
45  TValue *value);
46 LUAI_FUNC void luaH_set (lua_State *L, Table *t, const TValue *key,
47  TValue *value);
48 LUAI_FUNC void luaH_finishset (lua_State *L, Table *t, const TValue *key,
49  const TValue *slot, TValue *value);
51 LUAI_FUNC void luaH_resize (lua_State *L, Table *t, unsigned int nasize,
52  unsigned int nhsize);
53 LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, unsigned int nasize);
54 LUAI_FUNC void luaH_free (lua_State *L, Table *t);
55 LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key);
57 LUAI_FUNC unsigned int luaH_realasize (const Table *t);
58 
59 
60 #if defined(LUA_DEBUG)
61 LUAI_FUNC Node *luaH_mainposition (const Table *t, const TValue *key);
62 LUAI_FUNC int luaH_isdummy (const Table *t);
63 #endif
64 
65 
66 #endif
posrelatI
static size_t posrelatI(lua_Integer pos, size_t len)
Definition: lstrlib.c:71
arith
static int arith(lua_State *L, int op, const char *mtname)
Definition: lstrlib.c:286
l_sprintf
#define l_sprintf(s, sz, f, i)
Definition: ltests.h:33
createmetatable
static void createmetatable(lua_State *L)
Definition: lstrlib.c:1780
getnum
static int getnum(const char **fmt, int df)
Definition: lstrlib.c:1403
s2v
#define s2v(o)
Definition: lobject.h:150
luaC_newobj
GCObject * luaC_newobj(lua_State *L, int tt, size_t sz)
Definition: lgc.c:258
LUA_TFUNCTION
#define LUA_TFUNCTION
Definition: lua.h:71
lua_pushliteral
#define lua_pushliteral(L, s)
Definition: lua.h:381
Kfloat
@ Kfloat
Definition: lstrlib.c:1387
pvalueraw
#define pvalueraw(v)
Definition: lobject.h:417
cD::d
double d
Definition: lstrlib.c:1355
MatchState::src_end
const char * src_end
Definition: lstrlib.c:358
luaH_next
LUAI_FUNC int luaH_next(lua_State *L, Table *t, StkId key)
Definition: ltable.c:319
addquoted
static void addquoted(luaL_Buffer *b, const char *s, size_t len)
Definition: lstrlib.c:1101
nativeendian
static const union @16 nativeendian
GMatchState::src
const char * src
Definition: lstrlib.c:828
Table::flags
lu_byte flags
Definition: lobject.h:716
LUA_OPUNM
#define LUA_OPUNM
Definition: lua.h:217
MAX_ITEMF
#define MAX_ITEMF
Definition: lstrlib.c:1075
lua_assert
#define lua_assert(c)
Definition: lauxlib.h:169
luaL_getmetafield
LUALIB_API int luaL_getmetafield(lua_State *L, int obj, const char *event)
Definition: lauxlib.c:835
MatchState::L
lua_State * L
Definition: lstrlib.c:360
gcvalueraw
#define gcvalueraw(v)
Definition: lobject.h:285
lua_Unsigned
LUA_UNSIGNED lua_Unsigned
Definition: lua.h:97
LUAI_FUNC
#define LUAI_FUNC
Definition: luaconf.h:307
MAXASIZE
#define MAXASIZE
Definition: ltable.c:54
cast_byte
#define cast_byte(i)
Definition: llimits.h:130
luaL_addstring
LUALIB_API void luaL_addstring(luaL_Buffer *B, const char *s)
Definition: lauxlib.c:579
luaH_free
void luaH_free(lua_State *L, Table *t)
Definition: ltable.c:608
str_char
static int str_char(lua_State *L)
Definition: lstrlib.c:194
cast
#define cast(t, exp)
Definition: llimits.h:123
packint
static void packint(luaL_Buffer *b, lua_Unsigned n, int islittle, int size, int neg)
Definition: lstrlib.c:1516
arith_idiv
static int arith_idiv(lua_State *L)
Definition: lstrlib.c:319
luaH_new
LUAI_FUNC Table * luaH_new(lua_State *L)
Definition: ltable.c:596
luaH_get
LUAI_FUNC const TValue * luaH_get(Table *t, const TValue *key)
Definition: ltable.c:756
keytt
#define keytt(node)
Definition: lobject.h:730
luaH_realasize
LUAI_FUNC unsigned int luaH_realasize(const Table *t)
Definition: ltable.c:222
MAXINTSIZE
#define MAXINTSIZE
Definition: lstrlib.c:1333
arith_add
static int arith_add(lua_State *L)
Definition: lstrlib.c:295
LUAI_UACNUMBER
#define LUAI_UACNUMBER
Definition: luaconf.h:458
lstate.h
L_FMTFLAGS
#define L_FMTFLAGS
Definition: lstrlib.c:1091
getdetails
static KOption getdetails(Header *h, size_t totalsize, const char **fmt, int *psize, int *ntoalign)
Definition: lstrlib.c:1489
str_byte
static int str_byte(lua_State *L)
Definition: lstrlib.c:176
str_dump
static int str_dump(lua_State *L)
Definition: lstrlib.c:232
LUA_OPDIV
#define LUA_OPDIV
Definition: lua.h:210
cD::c
char c
Definition: lstrlib.c:1354
eqshrstr
#define eqshrstr(a, b)
Definition: lstring.h:41
MAXSIZE
#define MAXSIZE
Definition: lstrlib.c:49
arith_div
static int arith_div(lua_State *L)
Definition: lstrlib.c:315
luaL_checkstring
#define luaL_checkstring(L, n)
Definition: lauxlib.h:138
luaL_pushresultsize
LUALIB_API void luaL_pushresultsize(luaL_Buffer *B, size_t sz)
Definition: lauxlib.c:594
isrealasize
#define isrealasize(t)
Definition: lobject.h:709
pvalue
#define pvalue(o)
Definition: lobject.h:414
tsvalueraw
#define tsvalueraw(v)
Definition: lobject.h:345
setsvalue
#define setsvalue(L, obj, x)
Definition: lobject.h:349
hashpointer
#define hashpointer(t, p)
Definition: ltable.c:85
luaH_newkey
void luaH_newkey(lua_State *L, Table *t, const TValue *key, TValue *value)
Definition: ltable.c:635
LUA_TSTRING
#define LUA_TSTRING
Definition: lua.h:69
hashint
#define hashint(t, i)
Definition: ltable.c:75
luaL_buffinit
LUALIB_API void luaL_buffinit(lua_State *L, luaL_Buffer *B)
Definition: lauxlib.c:620
rehash
static void rehash(lua_State *L, Table *t, const TValue *ek)
Definition: ltable.c:568
LUA_TTABLE
#define LUA_TTABLE
Definition: lua.h:70
match_capture
static const char * match_capture(MatchState *ms, const char *s, int l)
Definition: lstrlib.c:556
Header
struct Header Header
end_capture
static const char * end_capture(MatchState *ms, const char *s, const char *p)
Definition: lstrlib.c:545
unlikely
#define unlikely(x)
Definition: llimits.h:162
setnorealasize
#define setnorealasize(t)
Definition: lobject.h:711
lua_pushinteger
LUA_API void lua_pushinteger(lua_State *L, lua_Integer n)
Definition: lapi.c:489
luaC_barrierback
#define luaC_barrierback(L, p, v)
Definition: lgc.h:169
setnodekey
#define setnodekey(L, node, obj)
Definition: lobject.h:688
stringmetamethods
static const luaL_Reg stringmetamethods[]
Definition: lstrlib.c:328
str_format
static int str_format(lua_State *L)
Definition: lstrlib.c:1224
ltable.h
arith_sub
static int arith_sub(lua_State *L)
Definition: lstrlib.c:299
hashmod
#define hashmod(t, n)
Definition: ltable.c:82
LUA_OPSUB
#define LUA_OPSUB
Definition: lua.h:206
Kpadding
@ Kpadding
Definition: lstrlib.c:1391
LUA_OPMUL
#define LUA_OPMUL
Definition: lua.h:207
limitequalsasize
#define limitequalsasize(t)
Definition: ltable.c:216
max_expand
static const char * max_expand(MatchState *ms, const char *s, const char *p, const char *ep)
Definition: lstrlib.c:503
luaG_runerror
l_noret luaG_runerror(lua_State *L, const char *fmt,...)
Definition: ldebug.c:767
LUA_VNUMINT
#define LUA_VNUMINT
Definition: lobject.h:301
isempty
#define isempty(v)
Definition: lobject.h:195
luaL_newlibtable
#define luaL_newlibtable(L, l)
Definition: lauxlib.h:126
mainpositionTV
static Node * mainpositionTV(const Table *t, const TValue *key)
Definition: ltable.c:163
lua_pop
#define lua_pop(L, n)
Definition: lua.h:364
getnodekey
#define getnodekey(L, obj, node)
Definition: lobject.h:695
luaH_newkey
LUAI_FUNC void luaH_newkey(lua_State *L, Table *t, const TValue *key, TValue *value)
Definition: ltable.c:635
LUA_VNUMFLT
#define LUA_VNUMFLT
Definition: lobject.h:302
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
fvalue
#define fvalue(o)
Definition: lobject.h:582
gmatch_aux
static int gmatch_aux(lua_State *L)
Definition: lstrlib.c:835
MatchState::len
ptrdiff_t len
Definition: lstrlib.c:365
fvalueraw
#define fvalueraw(v)
Definition: lobject.h:585
LUA_OPADD
#define LUA_OPADD
Definition: lua.h:205
str_match
static int str_match(lua_State *L)
Definition: lstrlib.c:821
lua_pushlstring
LUA_API const char * lua_pushlstring(lua_State *L, const char *s, size_t len)
Definition: lapi.c:502
luaH_getstr
LUAI_FUNC const TValue * luaH_getstr(Table *t, TString *key)
Definition: ltable.c:742
lua_gettable
LUA_API int lua_gettable(lua_State *L, int idx)
Definition: lapi.c:650
ttisinteger
#define ttisinteger(o)
Definition: lobject.h:306
LUA_TBOOLEAN
#define LUA_TBOOLEAN
Definition: lua.h:66
Header
Definition: lstrlib.c:1374
luaL_checklstring
LUALIB_API const char * luaL_checklstring(lua_State *L, int arg, size_t *len)
Definition: lauxlib.c:402
add_value
static int add_value(MatchState *ms, luaL_Buffer *b, const char *s, const char *e, int tr)
Definition: lstrlib.c:903
LUA_VEMPTY
#define LUA_VEMPTY
Definition: lobject.h:164
luaL_addlstring
LUALIB_API void luaL_addlstring(luaL_Buffer *B, const char *s, size_t l)
Definition: lauxlib.c:570
little
char little
Definition: lstrlib.c:1348
writer
static int writer(lua_State *L, const void *b, size_t size, void *ud)
Definition: lstrlib.c:221
cast_uint
#define cast_uint(i)
Definition: llimits.h:129
luai_numisnan
#define luai_numisnan(a)
Definition: llimits.h:344
lua_Number
LUA_NUMBER lua_Number
Definition: lua.h:90
nodefromval
#define nodefromval(v)
Definition: ltable.h:35
Header::maxalign
int maxalign
Definition: lstrlib.c:1377
unpackint
static lua_Integer unpackint(lua_State *L, const char *str, int islittle, int size, int issigned)
Definition: lstrlib.c:1664
luaM_error
#define luaM_error(L)
Definition: lmem.h:17
singlematch
static int singlematch(MatchState *ms, const char *s, const char *p, const char *ep)
Definition: lstrlib.c:467
lua_isstring
LUA_API int lua_isstring(lua_State *L, int idx)
Definition: lapi.c:292
LUA_VFALSE
#define LUA_VFALSE
Definition: lobject.h:217
CAP_POSITION
#define CAP_POSITION
Definition: lstrlib.c:353
str_gsub
static int str_gsub(lua_State *L)
Definition: lstrlib.c:939
SPECIALS
#define SPECIALS
Definition: lstrlib.c:381
start_capture
static const char * start_capture(MatchState *ms, const char *s, const char *p, int what)
Definition: lstrlib.c:531
lua_type
LUA_API int lua_type(lua_State *L, int idx)
Definition: lapi.c:260
lua_tolstring
LUA_API const char * lua_tolstring(lua_State *L, int idx, size_t *len)
Definition: lapi.c:381
luaH_getint
const TValue * luaH_getint(Table *t, lua_Integer key)
Definition: ltable.c:698
reinsert
static void reinsert(lua_State *L, Table *ot, Table *t)
Definition: ltable.c:478
dummynode
#define dummynode
Definition: ltable.c:88
lua_setmetatable
LUA_API int lua_setmetatable(lua_State *L, int objindex)
Definition: lapi.c:909
Knop
@ Knop
Definition: lstrlib.c:1393
withvariant
#define withvariant(t)
Definition: lobject.h:81
lua_number2strx
#define lua_number2strx(L, b, sz, f, n)
Definition: luaconf.h:616
MatchState::capture
struct MatchState::@17 capture[LUA_MAXCAPTURES]
StackValue
Definition: lobject.h:141
copywithendian
static void copywithendian(char *dest, const char *src, int size, int islittle)
Definition: lstrlib.c:1537
luaH_getshortstr
const TValue * luaH_getshortstr(Table *t, TString *key)
Definition: ltable.c:726
lua_pushnumber
LUA_API void lua_pushnumber(lua_State *L, lua_Number n)
Definition: lapi.c:481
luaM_newvector
#define luaM_newvector(L, n, t)
Definition: lmem.h:60
lua_dump
LUA_API int lua_dump(lua_State *L, lua_Writer writer, void *data, int strip)
Definition: lapi.c:1085
MAX_FORMAT
#define MAX_FORMAT
Definition: lstrlib.c:1098
str_find
static int str_find(lua_State *L)
Definition: lstrlib.c:816
lua_isinteger
LUA_API int lua_isinteger(lua_State *L, int idx)
Definition: lapi.c:279
luaL_pushresult
LUALIB_API void luaL_pushresult(luaL_Buffer *B)
Definition: lauxlib.c:584
keyival
#define keyival(node)
Definition: lobject.h:735
luaL_argexpected
#define luaL_argexpected(L, cond, arg, tname)
Definition: lauxlib.h:135
tonum
static int tonum(lua_State *L, int arg)
Definition: lstrlib.c:263
cD::u
union cD::@18 u
ispow2
#define ispow2(x)
Definition: llimits.h:66
Table::lastfree
Node * lastfree
Definition: lobject.h:721
luaH_getint
LUAI_FUNC const TValue * luaH_getint(Table *t, lua_Integer key)
Definition: ltable.c:698
LUA_VTABLE
#define LUA_VTABLE
Definition: lobject.h:655
addliteral
static void addliteral(lua_State *L, luaL_Buffer *b, int arg)
Definition: lstrlib.c:1154
check_capture
static int check_capture(MatchState *ms, int l)
Definition: lstrlib.c:384
maskflags
#define maskflags
Definition: ltm.h:54
Header::islittle
int islittle
Definition: lstrlib.c:1376
luaH_resize
void luaH_resize(lua_State *L, Table *t, unsigned int newasize, unsigned int nhsize)
Definition: ltable.c:523
luaH_resizearray
void luaH_resizearray(lua_State *L, Table *t, unsigned int nasize)
Definition: ltable.c:560
lua.h
GMatchState::lastmatch
const char * lastmatch
Definition: lstrlib.c:830
setnilkey
#define setnilkey(node)
Definition: lobject.h:739
fltvalueraw
#define fltvalueraw(v)
Definition: lobject.h:313
lua_arith
LUA_API void lua_arith(lua_State *L, int op)
Definition: lapi.c:311
fltvalue
#define fltvalue(o)
Definition: lobject.h:310
MAXALIGN
#define MAXALIGN
Definition: lstrlib.c:1358
lua_topointer
LUA_API const void * lua_topointer(lua_State *L, int idx)
Definition: lapi.c:451
twoto
#define twoto(x)
Definition: lobject.h:767
luaH_set
LUAI_FUNC void luaH_set(lua_State *L, Table *t, const TValue *key, TValue *value)
Definition: ltable.c:792
gval
#define gval(n)
Definition: ltable.h:14
dummy
int dummy
Definition: lstrlib.c:1347
luaH_set
void luaH_set(lua_State *L, Table *t, const TValue *key, TValue *value)
Definition: ltable.c:792
countint
static int countint(lua_Integer key, unsigned int *nums)
Definition: ltable.c:383
ttisnil
#define ttisnil(v)
Definition: lobject.h:171
keystrval
#define keystrval(node)
Definition: lobject.h:737
matchbalance
static const char * matchbalance(MatchState *ms, const char *s, const char *p)
Definition: lstrlib.c:483
Kzstr
@ Kzstr
Definition: lstrlib.c:1390
findindex
static unsigned int findindex(lua_State *L, Table *t, TValue *key, unsigned int asize)
Definition: ltable.c:301
ivalue
#define ivalue(o)
Definition: lobject.h:311
arith_mod
static int arith_mod(lua_State *L)
Definition: lstrlib.c:307
setnodevector
static void setnodevector(lua_State *L, Table *t, unsigned int size)
Definition: ltable.c:450
GMatchState::ms
MatchState ms
Definition: lstrlib.c:831
lua_insert
#define lua_insert(L, idx)
Definition: lua.h:389
ABSTKEYCONSTANT
#define ABSTKEYCONSTANT
Definition: lobject.h:199
LUA_OPIDIV
#define LUA_OPIDIV
Definition: lua.h:211
binsearch
static unsigned int binsearch(const TValue *array, unsigned int i, unsigned int j)
Definition: ltable.c:848
Kpaddalign
@ Kpaddalign
Definition: lstrlib.c:1392
numusearray
static unsigned int numusearray(const Table *t, unsigned int *nums)
Definition: ltable.c:399
prepstate
static void prepstate(MatchState *ms, lua_State *L, const char *s, size_t ls, const char *p, size_t lp)
Definition: lstrlib.c:754
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
lua_pushcclosure
LUA_API void lua_pushcclosure(lua_State *L, lua_CFunction fn, int n)
Definition: lapi.c:555
initheader
static void initheader(lua_State *L, Header *h)
Definition: lstrlib.c:1432
arith_mul
static int arith_mul(lua_State *L)
Definition: lstrlib.c:303
SZINT
#define SZINT
Definition: lstrlib.c:1342
luaO_ceillog2
int luaO_ceillog2(unsigned int x)
Definition: lobject.c:35
lvm.h
Kchar
@ Kchar
Definition: lstrlib.c:1388
setobj2t
#define setobj2t
Definition: lobject.h:135
strlib
static const luaL_Reg strlib[]
Definition: lstrlib.c:1758
luaL_Reg
Definition: lauxlib.h:37
luaH_get
const TValue * luaH_get(Table *t, const TValue *key)
Definition: ltable.c:756
LUA_VLNGSTR
#define LUA_VLNGSTR
Definition: lobject.h:339
LUA_VSHRSTR
#define LUA_VSHRSTR
Definition: lobject.h:338
str_Writer
Definition: lstrlib.c:215
luaH_setint
LUAI_FUNC void luaH_setint(lua_State *L, Table *t, lua_Integer key, TValue *value)
Definition: ltable.c:798
luaS_hashlongstr
unsigned int luaS_hashlongstr(TString *ts)
Definition: lstring.c:51
keyisdead
#define keyisdead(node)
Definition: lobject.h:754
TString
Definition: lobject.h:364
lua_numbertointeger
#define lua_numbertointeger(n, p)
Definition: luaconf.h:413
LUA_OPMOD
#define LUA_OPMOD
Definition: lua.h:208
lprefix.h
LUA_VTRUE
#define LUA_VTRUE
Definition: lobject.h:218
match_class
static int match_class(int c, int cl)
Definition: lstrlib.c:424
MatchState::level
unsigned char level
Definition: lstrlib.c:362
equalkey
static int equalkey(const TValue *k1, const Node *n2, int deadok)
Definition: ltable.c:188
gco2t
#define gco2t(o)
Definition: lstate.h:337
l_hashfloat
static int l_hashfloat(lua_Number n)
Definition: ltable.c:114
ldebug.h
MAXHSIZE
#define MAXHSIZE
Definition: ltable.c:68
luaL_optlstring
LUALIB_API const char * luaL_optlstring(lua_State *L, int arg, const char *def, size_t *len)
Definition: lauxlib.c:409
luaV_flttointeger
int luaV_flttointeger(lua_Number n, lua_Integer *p, F2Imod mode)
Definition: lvm.c:121
LUA_TNUMBER
#define LUA_TNUMBER
Definition: lua.h:68
Kint
@ Kint
Definition: lstrlib.c:1385
trymt
static void trymt(lua_State *L, const char *mtname)
Definition: lstrlib.c:276
lu_byte
unsigned char lu_byte
Definition: llimits.h:36
arith_pow
static int arith_pow(lua_State *L)
Definition: lstrlib.c:311
luaL_argerror
LUALIB_API int luaL_argerror(lua_State *L, int arg, const char *extramsg)
Definition: lauxlib.c:175
getgeneric
static const TValue * getgeneric(Table *t, const TValue *key, int deadok)
Definition: ltable.c:269
Kstring
@ Kstring
Definition: lstrlib.c:1389
MAXABITS
#define MAXABITS
Definition: ltable.c:46
str_unpack
static int str_unpack(lua_State *L)
Definition: lstrlib.c:1690
lmemfind
static const char * lmemfind(const char *s1, size_t l1, const char *s2, size_t l2)
Definition: lstrlib.c:670
GMatchState::p
const char * p
Definition: lstrlib.c:829
Table
Definition: lobject.h:714
LUA_VNIL
#define LUA_VNIL
Definition: lobject.h:161
luaL_buffinitsize
LUALIB_API char * luaL_buffinitsize(lua_State *L, luaL_Buffer *B, size_t sz)
Definition: lauxlib.c:628
lua_touserdata
LUA_API void * lua_touserdata(lua_State *L, int idx)
Definition: lapi.c:432
F2Ieq
@ F2Ieq
Definition: lvm.h:44
luaL_Buffer
Definition: lauxlib.h:182
Ftypes::d
double d
Definition: lstrlib.c:1366
luaH_getstr
const TValue * luaH_getstr(Table *t, TString *key)
Definition: ltable.c:742
push_captures
static int push_captures(MatchState *ms, const char *s, const char *e)
Definition: lstrlib.c:732
exchangehashpart
static void exchangehashpart(Table *t1, Table *t2)
Definition: ltable.c:497
luaL_argcheck
#define luaL_argcheck(L, cond, arg, extramsg)
Definition: lauxlib.h:132
luaL_addchar
#define luaL_addchar(B, c)
Definition: lauxlib.h:198
luaH_realasize
LUAI_FUNC unsigned int luaH_realasize(const Table *t)
Definition: ltable.c:222
lobject.h
hash_search
static lua_Unsigned hash_search(Table *t, lua_Unsigned j)
Definition: ltable.c:823
luaH_finishset
LUAI_FUNC void luaH_finishset(lua_State *L, Table *t, const TValue *key, const TValue *slot, TValue *value)
Definition: ltable.c:779
Table::metatable
struct Table * metatable
Definition: lobject.h:722
luaH_new
Table * luaH_new(lua_State *L)
Definition: ltable.c:596
cD::n
lua_Number n
Definition: lstrlib.c:1355
dummynode_
static const Node dummynode_
Definition: ltable.c:90
lua_gettop
LUA_API int lua_gettop(lua_State *L)
Definition: lapi.c:168
lua_State
Definition: lstate.h:273
LUA_VLIGHTUSERDATA
#define LUA_VLIGHTUSERDATA
Definition: lobject.h:407
GMatchState
struct GMatchState GMatchState
cD
Definition: lstrlib.c:1353
lua_Integer
LUA_INTEGER lua_Integer
Definition: lua.h:94
allocsizenode
#define allocsizenode(t)
Definition: ltable.h:31
LUA_MAXCAPTURES
#define LUA_MAXCAPTURES
Definition: lstrlib.c:35
hashboolean
#define hashboolean(t, p)
Definition: ltable.c:74
keyisinteger
#define keyisinteger(node)
Definition: lobject.h:734
limitasasize
#define limitasasize(t)
Definition: ltable.c:260
lua_settop
LUA_API void lua_settop(lua_State *L, int idx)
Definition: lapi.c:173
luaM_reallocvector
#define luaM_reallocvector(L, v, oldn, n, t)
Definition: lmem.h:70
luaopen_string
LUAMOD_API int luaopen_string(lua_State *L)
Definition: lstrlib.c:1797
str_Writer::B
luaL_Buffer B
Definition: lstrlib.c:217
isdummy
#define isdummy(t)
Definition: ltable.h:27
MatchState
struct MatchState MatchState
lauxlib.h
lualib.h
str_pack
static int str_pack(lua_State *L)
Definition: lstrlib.c:1549
LUA_NUMBER_FMT
#define LUA_NUMBER_FMT
Definition: luaconf.h:461
lua_pushvalue
LUA_API void lua_pushvalue(lua_State *L, int idx)
Definition: lapi.c:246
TValue
Definition: lobject.h:65
getnumlimit
static int getnumlimit(Header *h, const char **fmt, int df)
Definition: lstrlib.c:1420
hashpow2
#define hashpow2(t, n)
Definition: ltable.c:71
LUAI_UACINT
#define LUAI_UACINT
Definition: luaconf.h:496
str_Writer::init
int init
Definition: lstrlib.c:216
str_packsize
static int str_packsize(lua_State *L)
Definition: lstrlib.c:1636
luaL_checktype
LUALIB_API void luaL_checktype(lua_State *L, int arg, int t)
Definition: lauxlib.c:390
Table::array
TValue * array
Definition: lobject.h:719
keyisnil
#define keyisnil(node)
Definition: lobject.h:733
sizenode
#define sizenode(t)
Definition: lobject.h:768
setempty
#define setempty(v)
Definition: lobject.h:203
Table::alimit
unsigned int alimit
Definition: lobject.h:718
ttypetag
#define ttypetag(o)
Definition: lobject.h:82
l_castS2U
#define l_castS2U(i)
Definition: llimits.h:139
Ftypes
union Ftypes Ftypes
cast_sizet
#define cast_sizet(i)
Definition: llimits.h:134
gnext
#define gnext(n)
Definition: ltable.h:15
str_lower
static int str_lower(lua_State *L)
Definition: lstrlib.c:124
keyval
#define keyval(node)
Definition: lobject.h:731
luaH_getn
lua_Unsigned luaH_getn(Table *t)
Definition: ltable.c:891
Ftypes
Definition: lstrlib.c:1364
matchbracketclass
static int matchbracketclass(int c, const char *p, const char *ec)
Definition: lstrlib.c:444
lua_call
#define lua_call(L, n, r)
Definition: lua.h:283
tsvalue
#define tsvalue(o)
Definition: lobject.h:347
str_find_aux
static int str_find_aux(lua_State *L, int find)
Definition: lstrlib.c:770
ivalueraw
#define ivalueraw(v)
Definition: lobject.h:314
setlimittosize
static unsigned int setlimittosize(Table *t)
Definition: ltable.c:253
lua_getlocaledecpoint
#define lua_getlocaledecpoint()
Definition: luaconf.h:659
luaL_prepbuffsize
LUALIB_API char * luaL_prepbuffsize(luaL_Buffer *B, size_t sz)
Definition: lauxlib.c:565
getoption
static KOption getoption(Header *h, const char **fmt, int *size)
Definition: lstrlib.c:1442
min_expand
static const char * min_expand(MatchState *ms, const char *s, const char *p, const char *ep)
Definition: lstrlib.c:518
luaH_setint
void luaH_setint(lua_State *L, Table *t, lua_Integer key, TValue *value)
Definition: ltable.c:798
luaH_next
int luaH_next(lua_State *L, Table *t, StkId key)
Definition: ltable.c:319
getendpos
static size_t getendpos(lua_State *L, int arg, lua_Integer def, size_t len)
Definition: lstrlib.c:87
LUA_TNIL
#define LUA_TNIL
Definition: lua.h:65
valraw
#define valraw(o)
Definition: lobject.h:71
LUAMOD_API
#define LUAMOD_API
Definition: luaconf.h:286
MatchState::matchdepth
int matchdepth
Definition: lstrlib.c:361
str_upper
static int str_upper(lua_State *L)
Definition: lstrlib.c:137
capture_to_close
static int capture_to_close(MatchState *ms)
Definition: lstrlib.c:392
setivalue
#define setivalue(obj, x)
Definition: lobject.h:322
add_s
static void add_s(MatchState *ms, luaL_Buffer *b, const char *s, const char *e)
Definition: lstrlib.c:868
LUA_INTEGER_FMT
#define LUA_INTEGER_FMT
Definition: luaconf.h:494
reprepstate
static void reprepstate(MatchState *ms)
Definition: lstrlib.c:764
str_len
static int str_len(lua_State *L)
Definition: lstrlib.c:55
MatchState::p_end
const char * p_end
Definition: lstrlib.c:359
gmatch
static int gmatch(lua_State *L)
Definition: lstrlib.c:851
classend
static const char * classend(MatchState *ms, const char *p)
Definition: lstrlib.c:400
luaL_setfuncs
LUALIB_API void luaL_setfuncs(lua_State *L, const luaL_Reg *l, int nup)
Definition: lauxlib.c:916
luaL_optinteger
LUALIB_API lua_Integer luaL_optinteger(lua_State *L, int arg, lua_Integer def)
Definition: lauxlib.c:452
LUA_NUMBER_FRMLEN
#define LUA_NUMBER_FRMLEN
Definition: luaconf.h:460
LUAL_PACKPADBYTE
#define LUAL_PACKPADBYTE
Definition: lstrlib.c:1329
luaH_resize
LUAI_FUNC void luaH_resize(lua_State *L, Table *t, unsigned int nasize, unsigned int nhsize)
Definition: ltable.c:523
MAXHBITS
#define MAXHBITS
Definition: ltable.c:60
arrayindex
static unsigned int arrayindex(lua_Integer k)
Definition: ltable.c:288
absentkey
static const TValue absentkey
Definition: ltable.c:96
MAXCCALLS
#define MAXCCALLS
Definition: lstrlib.c:376
Value
Definition: lobject.h:49
CAP_UNFINISHED
#define CAP_UNFINISHED
Definition: lstrlib.c:352
rawtt
#define rawtt(o)
Definition: lobject.h:75
digit
static int digit(int c)
Definition: lstrlib.c:1401
freehash
static void freehash(lua_State *L, Table *t)
Definition: ltable.c:341
luaL_checkstack
LUALIB_API void luaL_checkstack(lua_State *L, int space, const char *msg)
Definition: lauxlib.c:380
l_mathop
#define l_mathop(op)
Definition: luaconf.h:463
luaL_newlib
#define luaL_newlib(L, l)
Definition: lauxlib.h:129
lua_tonumber
#define lua_tonumber(L, i)
Definition: lua.h:361
luaL_checknumber
LUALIB_API lua_Number luaL_checknumber(lua_State *L, int arg)
Definition: lauxlib.c:420
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
quotefloat
static int quotefloat(lua_State *L, char *buff, lua_Number n)
Definition: lstrlib.c:1130
str_reverse
static int str_reverse(lua_State *L)
Definition: lstrlib.c:112
getfreepos
static Node * getfreepos(Table *t)
Definition: ltable.c:615
MatchState::init
const char * init
Definition: lstrlib.c:364
setobj2s
#define setobj2s(L, o1, o2)
Definition: lobject.h:129
lstring.h
MatchState::src_init
const char * src_init
Definition: lstrlib.c:357
hashstr
#define hashstr(t, str)
Definition: ltable.c:73
lua_newuserdatauv
LUA_API void * lua_newuserdatauv(lua_State *L, size_t size, int nuvalue)
Definition: lapi.c:1318
luaL_checkinteger
LUALIB_API lua_Integer luaL_checkinteger(lua_State *L, int arg)
Definition: lauxlib.c:442
luai_numeq
#define luai_numeq(a, b)
Definition: llimits.h:339
push_onecapture
static void push_onecapture(MatchState *ms, int i, const char *s, const char *e)
Definition: lstrlib.c:722
Header::L
lua_State * L
Definition: lstrlib.c:1375
MC
#define MC
Definition: lstrlib.c:1339
lua_stringtonumber
LUA_API size_t lua_stringtonumber(lua_State *L, const char *s)
Definition: lapi.c:347
luaM_free
#define luaM_free(L, b)
Definition: lmem.h:56
addlenmod
static void addlenmod(char *form, const char *lenmod)
Definition: lstrlib.c:1214
lua_pushnil
LUA_API void lua_pushnil(lua_State *L)
Definition: lapi.c:473
LUA_OPPOW
#define LUA_OPPOW
Definition: lua.h:209
Node
Definition: lobject.h:676
lmem.h
LUA_VLCF
#define LUA_VLCF
Definition: lobject.h:569
Kuint
@ Kuint
Definition: lstrlib.c:1386
luaM_freearray
#define luaM_freearray(L, b, n)
Definition: lmem.h:57
Ftypes::f
float f
Definition: lstrlib.c:1365
lua_toboolean
LUA_API int lua_toboolean(lua_State *L, int idx)
Definition: lapi.c:375
luaH_free
LUAI_FUNC void luaH_free(lua_State *L, Table *t)
Definition: ltable.c:608
lgc.h
GCObject
Definition: lobject.h:270
match
static const char * match(MatchState *ms, const char *s, const char *p)
Definition: lstrlib.c:567
mainposition
static Node * mainposition(const Table *t, int ktt, const Value *kvl)
Definition: ltable.c:136
luaH_getshortstr
LUAI_FUNC const TValue * luaH_getshortstr(Table *t, TString *key)
Definition: ltable.c:726
cD::p
void * p
Definition: lstrlib.c:1355
setrealasize
#define setrealasize(t)
Definition: lobject.h:710
Table::lsizenode
lu_byte lsizenode
Definition: lobject.h:717
numusehash
static int numusehash(const Table *t, unsigned int *nums, unsigned int *pna)
Definition: ltable.c:426
lua_upvalueindex
#define lua_upvalueindex(i)
Definition: lua.h:45
luaL_addvalue
LUALIB_API void luaL_addvalue(luaL_Buffer *B)
Definition: lauxlib.c:609
L_ESC
#define L_ESC
Definition: lstrlib.c:380
uchar
#define uchar(c)
Definition: lstrlib.c:40
luaS_eqlngstr
int luaS_eqlngstr(TString *a, TString *b)
Definition: lstring.c:34
scanformat
static const char * scanformat(lua_State *L, const char *strfrmt, char *form)
Definition: lstrlib.c:1189
GMatchState
Definition: lstrlib.c:827
luaH_getn
LUAI_FUNC lua_Unsigned luaH_getn(Table *t)
Definition: ltable.c:891
luaH_finishset
void luaH_finishset(lua_State *L, Table *t, const TValue *key, const TValue *slot, TValue *value)
Definition: ltable.c:779
Ftypes::n
lua_Number n
Definition: lstrlib.c:1367
keyisshrstr
#define keyisshrstr(node)
Definition: lobject.h:736
nospecials
static int nospecials(const char *p, size_t l)
Definition: lstrlib.c:743
iscollectable
#define iscollectable(o)
Definition: lobject.h:278
luaH_resizearray
LUAI_FUNC void luaH_resizearray(lua_State *L, Table *t, unsigned int nasize)
Definition: ltable.c:560
isabstkey
#define isabstkey(v)
Definition: lobject.h:181
cD::i
lua_Integer i
Definition: lstrlib.c:1355
luaL_addsize
#define luaL_addsize(B, s)
Definition: lauxlib.h:202
ispow2realasize
static int ispow2realasize(const Table *t)
Definition: ltable.c:248
computesizes
static unsigned int computesizes(unsigned int nums[], unsigned int *pna)
Definition: ltable.c:361
str_sub
static int str_sub(lua_State *L)
Definition: lstrlib.c:100
arith_unm
static int arith_unm(lua_State *L)
Definition: lstrlib.c:323
luaL_pushfail
#define luaL_pushfail(L)
Definition: lauxlib.h:157
ctb
#define ctb(t)
Definition: lobject.h:281
Table::node
Node * node
Definition: lobject.h:720
get_onecapture
static size_t get_onecapture(MatchState *ms, int i, const char *s, const char *e, const char **cap)
Definition: lstrlib.c:699
MatchState
Definition: lstrlib.c:356
cast_num
#define cast_num(i)
Definition: llimits.h:127
NB
#define NB
Definition: lstrlib.c:1336
ldo.h
str_rep
static int str_rep(lua_State *L)
Definition: lstrlib.c:150
MAX_ITEM
#define MAX_ITEM
Definition: lstrlib.c:1086
cast_int
#define cast_int(i)
Definition: llimits.h:128
ttisfloat
#define ttisfloat(o)
Definition: lobject.h:305
KOption
KOption
Definition: lstrlib.c:1384