#include <assert.h>
#include <string.h>
#include "lua.h"
#include "lapi.h"
#include "ldebug.h"
#include "ldo.h"
#include "lfunc.h"
#include "lgc.h"
#include "lmem.h"
#include "lobject.h"
#include "lstate.h"
#include "lstring.h"
#include "ltable.h"
#include "ltm.h"
#include "lundump.h"
#include "lvm.h"
Go to the source code of this file.
Data Structures | |
struct | CallS |
struct | CCallS |
Defines | |
#define | lapi_c |
#define | api_check(L, o) |
#define | api_checknelems(L, n) api_check(L, (n) <= (L->top - L->base)) |
#define | api_incr_top(L) {api_check(L, L->top < L->ci->top); L->top++;} |
#define | GCscalel(x) ((x)>>10) |
#define | GCscale(x) (cast(int, GCscalel(x))) |
#define | GCunscale(x) (cast(lu_mem, x)<<10) |
Functions | |
static TObject * | negindex (lua_State *L, int idx) |
static TObject * | luaA_index (lua_State *L, int idx) |
static TObject * | luaA_indexAcceptable (lua_State *L, int idx) |
void | luaA_pushobject (lua_State *L, const TObject *o) |
LUA_API int | lua_checkstack (lua_State *L, int size) |
LUA_API void | lua_xmove (lua_State *from, lua_State *to, int n) |
LUA_API lua_CFunction | lua_atpanic (lua_State *L, lua_CFunction panicf) |
LUA_API lua_State * | lua_newthread (lua_State *L) |
LUA_API int | lua_gettop (lua_State *L) |
LUA_API void | lua_settop (lua_State *L, int idx) |
LUA_API void | lua_remove (lua_State *L, int idx) |
LUA_API void | lua_insert (lua_State *L, int idx) |
LUA_API void | lua_replace (lua_State *L, int idx) |
LUA_API void | lua_pushvalue (lua_State *L, int idx) |
LUA_API int | lua_type (lua_State *L, int idx) |
LUA_API const char * | lua_typename (lua_State *L, int t) |
LUA_API int | lua_iscfunction (lua_State *L, int idx) |
LUA_API int | lua_isnumber (lua_State *L, int idx) |
LUA_API int | lua_isstring (lua_State *L, int idx) |
LUA_API int | lua_isuserdata (lua_State *L, int idx) |
LUA_API int | lua_rawequal (lua_State *L, int index1, int index2) |
LUA_API int | lua_equal (lua_State *L, int index1, int index2) |
LUA_API int | lua_lessthan (lua_State *L, int index1, int index2) |
LUA_API lua_Number | lua_tonumber (lua_State *L, int idx) |
LUA_API int | lua_toboolean (lua_State *L, int idx) |
LUA_API const char * | lua_tostring (lua_State *L, int idx) |
LUA_API size_t | lua_strlen (lua_State *L, int idx) |
LUA_API lua_CFunction | lua_tocfunction (lua_State *L, int idx) |
LUA_API void * | lua_touserdata (lua_State *L, int idx) |
LUA_API lua_State * | lua_tothread (lua_State *L, int idx) |
LUA_API const void * | lua_topointer (lua_State *L, int idx) |
LUA_API void | lua_pushnil (lua_State *L) |
LUA_API void | lua_pushnumber (lua_State *L, lua_Number n) |
LUA_API void | lua_pushlstring (lua_State *L, const char *s, size_t len) |
LUA_API void | lua_pushstring (lua_State *L, const char *s) |
LUA_API const char * | lua_pushvfstring (lua_State *L, const char *fmt, va_list argp) |
LUA_API const char * | lua_pushfstring (lua_State *L, const char *fmt,...) |
LUA_API void | lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) |
LUA_API void | lua_pushboolean (lua_State *L, int b) |
LUA_API void | lua_pushlightuserdata (lua_State *L, void *p) |
LUA_API void | lua_gettable (lua_State *L, int idx) |
LUA_API void | lua_rawget (lua_State *L, int idx) |
LUA_API void | lua_rawgeti (lua_State *L, int idx, int n) |
LUA_API void | lua_newtable (lua_State *L) |
LUA_API int | lua_getmetatable (lua_State *L, int objindex) |
LUA_API void | lua_getfenv (lua_State *L, int idx) |
LUA_API void | lua_settable (lua_State *L, int idx) |
LUA_API void | lua_rawset (lua_State *L, int idx) |
LUA_API void | lua_rawseti (lua_State *L, int idx, int n) |
LUA_API int | lua_setmetatable (lua_State *L, int objindex) |
LUA_API int | lua_setfenv (lua_State *L, int idx) |
LUA_API void | lua_call (lua_State *L, int nargs, int nresults) |
static void | f_call (lua_State *L, void *ud) |
LUA_API int | lua_pcall (lua_State *L, int nargs, int nresults, int errfunc) |
static void | f_Ccall (lua_State *L, void *ud) |
LUA_API int | lua_cpcall (lua_State *L, lua_CFunction func, void *ud) |
LUA_API int | lua_load (lua_State *L, lua_Chunkreader reader, void *data, const char *chunkname) |
LUA_API int | lua_dump (lua_State *L, lua_Chunkwriter writer, void *data) |
LUA_API int | lua_getgcthreshold (lua_State *L) |
LUA_API int | lua_getgccount (lua_State *L) |
LUA_API void | lua_setgcthreshold (lua_State *L, int newthreshold) |
LUA_API const char * | lua_version (void) |
LUA_API int | lua_error (lua_State *L) |
LUA_API int | lua_next (lua_State *L, int idx) |
LUA_API void | lua_concat (lua_State *L, int n) |
LUA_API void * | lua_newuserdata (lua_State *L, size_t size) |
LUA_API int | lua_pushupvalues (lua_State *L) |
static const char * | aux_upvalue (lua_State *L, int funcindex, int n, TObject **val) |
LUA_API const char * | lua_getupvalue (lua_State *L, int funcindex, int n) |
LUA_API const char * | lua_setupvalue (lua_State *L, int funcindex, int n) |
Variables | |
const char | lua_ident [] |
#define api_check | ( | L, | |||
o | ) |
Definition at line 39 of file lapi.c.
Referenced by lua_next(), lua_pushupvalues(), lua_rawget(), lua_rawgeti(), lua_rawset(), lua_rawseti(), lua_setfenv(), lua_setmetatable(), lua_settop(), luaA_index(), luaA_indexAcceptable(), and negindex().
#define api_checknelems | ( | L, | |||
n | ) | api_check(L, (n) <= (L->top - L->base)) |
Definition at line 42 of file lapi.c.
Referenced by lua_call(), lua_concat(), lua_dump(), lua_error(), lua_pushcclosure(), lua_rawset(), lua_rawseti(), lua_replace(), lua_setfenv(), lua_setmetatable(), lua_settable(), lua_setupvalue(), and lua_xmove().
#define api_incr_top | ( | L | ) | {api_check(L, L->top < L->ci->top); L->top++;} |
Definition at line 44 of file lapi.c.
Referenced by lua_concat(), lua_getfenv(), lua_getmetatable(), lua_getupvalue(), lua_newtable(), lua_newthread(), lua_newuserdata(), lua_next(), lua_pushboolean(), lua_pushcclosure(), lua_pushlightuserdata(), lua_pushlstring(), lua_pushnil(), lua_pushnumber(), lua_pushvalue(), lua_rawgeti(), and lua_xmove().
#define GCscale | ( | x | ) | (cast(int, GCscalel(x))) |
#define GCscalel | ( | x | ) | ((x)>>10) |
#define GCunscale | ( | x | ) | (cast(lu_mem, x)<<10) |
Definition at line 895 of file lapi.c.
References Closure::c, clvalue, getstr, CClosure::isC, Closure::l, luaA_index(), CClosure::nupvalues, LClosure::p, Proto::sizeupvalues, ttisfunction, LClosure::upvals, CClosure::upvalue, Proto::upvalues, and UpVal::v.
Referenced by lua_getupvalue(), and lua_setupvalue().
static void f_call | ( | lua_State * | L, | |
void * | ud | |||
) | [static] |
Definition at line 683 of file lapi.c.
References cast, CallS::func, luaD_call(), and CallS::nresults.
Referenced by lua_pcall().
static void f_Ccall | ( | lua_State * | L, | |
void * | ud | |||
) | [static] |
Definition at line 715 of file lapi.c.
References Closure::c, cast, CClosure::f, CCallS::func, incr_top, luaD_call(), luaF_newCclosure(), setclvalue, setpvalue, lua_State::top, and CCallS::ud.
Referenced by lua_cpcall().
LUA_API lua_CFunction lua_atpanic | ( | lua_State * | L, | |
lua_CFunction | panicf | |||
) |
LUA_API void lua_call | ( | lua_State * | L, | |
int | nargs, | |||
int | nresults | |||
) |
Definition at line 662 of file lapi.c.
References api_checknelems, lua_lock, lua_unlock, luaD_call(), and lua_State::top.
LUA_API int lua_checkstack | ( | lua_State * | L, | |
int | size | |||
) |
Definition at line 109 of file lapi.c.
References lua_State::base, lua_State::ci, lua_lock, LUA_MAXCSTACK, lua_unlock, luaD_checkstack, CallInfo::top, and lua_State::top.
LUA_API void lua_concat | ( | lua_State * | L, | |
int | n | |||
) |
Definition at line 846 of file lapi.c.
References api_checknelems, api_incr_top, lua_State::base, lua_lock, lua_unlock, luaC_checkGC, luaS_newlstr(), luaV_concat(), setsvalue2s, and lua_State::top.
LUA_API int lua_cpcall | ( | lua_State * | L, | |
lua_CFunction | func, | |||
void * | ud | |||
) |
Definition at line 730 of file lapi.c.
References f_Ccall(), CCallS::func, lua_lock, lua_unlock, luaD_pcall(), savestack, lua_State::top, and CCallS::ud.
LUA_API int lua_dump | ( | lua_State * | L, | |
lua_Chunkwriter | writer, | |||
void * | data | |||
) |
Definition at line 757 of file lapi.c.
References api_checknelems, clvalue, isLfunction, lua_lock, lua_unlock, luaU_dump(), and lua_State::top.
LUA_API int lua_equal | ( | lua_State * | L, | |
int | index1, | |||
int | index2 | |||
) |
Definition at line 279 of file lapi.c.
References equalobj, lua_lock, lua_unlock, and luaA_indexAcceptable().
LUA_API int lua_error | ( | lua_State * | L | ) |
Definition at line 820 of file lapi.c.
References api_checknelems, lua_lock, lua_unlock, and luaG_errormsg().
LUA_API void lua_getfenv | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 563 of file lapi.c.
References api_incr_top, clvalue, gt, isLfunction, lua_lock, lua_unlock, luaA_index(), setobj2s, and lua_State::top.
LUA_API int lua_getgccount | ( | lua_State * | L | ) |
LUA_API int lua_getgcthreshold | ( | lua_State * | L | ) |
LUA_API int lua_getmetatable | ( | lua_State * | L, | |
int | objindex | |||
) |
Definition at line 535 of file lapi.c.
References api_incr_top, defaultmeta, hvalue, lua_lock, lua_unlock, luaA_indexAcceptable(), sethvalue, lua_State::top, ttype, and uvalue.
LUA_API void lua_gettable | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 496 of file lapi.c.
References lua_lock, lua_unlock, luaA_index(), luaV_gettable(), setobj2s, and lua_State::top.
LUA_API int lua_gettop | ( | lua_State * | L | ) |
LUA_API const char* lua_getupvalue | ( | lua_State * | L, | |
int | funcindex, | |||
int | n | |||
) |
Definition at line 919 of file lapi.c.
References api_incr_top, aux_upvalue(), lua_lock, lua_unlock, setobj2s, and lua_State::top.
LUA_API void lua_insert | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 200 of file lapi.c.
References lua_lock, lua_unlock, luaA_index(), setobjs2s, and lua_State::top.
LUA_API int lua_iscfunction | ( | lua_State * | L, | |
int | idx | |||
) |
LUA_API int lua_isnumber | ( | lua_State * | L, | |
int | idx | |||
) |
LUA_API int lua_isstring | ( | lua_State * | L, | |
int | idx | |||
) |
LUA_API int lua_isuserdata | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 265 of file lapi.c.
References luaA_indexAcceptable(), ttislightuserdata, and ttisuserdata.
LUA_API int lua_lessthan | ( | lua_State * | L, | |
int | index1, | |||
int | index2 | |||
) |
Definition at line 292 of file lapi.c.
References lua_lock, lua_unlock, luaA_indexAcceptable(), and luaV_lessthan().
LUA_API int lua_load | ( | lua_State * | L, | |
lua_Chunkreader | reader, | |||
void * | data, | |||
const char * | chunkname | |||
) |
Definition at line 742 of file lapi.c.
References lua_lock, LUA_SIGNATURE, lua_unlock, luaD_protectedparser(), luaZ_init(), and luaZ_lookahead().
LUA_API void lua_newtable | ( | lua_State * | L | ) |
Definition at line 526 of file lapi.c.
References api_incr_top, lua_lock, lua_unlock, luaC_checkGC, luaH_new(), sethvalue, and lua_State::top.
Definition at line 148 of file lapi.c.
References api_incr_top, lua_lock, lua_unlock, lua_userstateopen, luaC_checkGC, luaE_newthread(), setthvalue, and lua_State::top.
LUA_API void* lua_newuserdata | ( | lua_State * | L, | |
size_t | size | |||
) |
Definition at line 863 of file lapi.c.
References api_incr_top, lua_lock, lua_unlock, luaC_checkGC, luaS_newudata(), setuvalue, and lua_State::top.
LUA_API int lua_next | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 829 of file lapi.c.
References api_check, api_incr_top, hvalue, lua_lock, lua_unlock, luaA_index(), luaH_next(), lua_State::top, and ttistable.
LUA_API int lua_pcall | ( | lua_State * | L, | |
int | nargs, | |||
int | nresults, | |||
int | errfunc | |||
) |
Definition at line 692 of file lapi.c.
References f_call(), CallS::func, lua_lock, lua_unlock, luaA_index(), luaD_pcall(), CallS::nresults, savestack, and lua_State::top.
LUA_API void lua_pushboolean | ( | lua_State * | L, | |
int | b | |||
) |
Definition at line 474 of file lapi.c.
References api_incr_top, lua_lock, lua_unlock, setbvalue, and lua_State::top.
LUA_API void lua_pushcclosure | ( | lua_State * | L, | |
lua_CFunction | fn, | |||
int | n | |||
) |
Definition at line 458 of file lapi.c.
References api_checknelems, api_incr_top, Closure::c, CClosure::f, lua_lock, lua_unlock, luaC_checkGC, luaF_newCclosure(), setclvalue, setobj2n, lua_State::top, and CClosure::upvalue.
LUA_API const char* lua_pushfstring | ( | lua_State * | L, | |
const char * | fmt, | |||
... | ||||
) |
Definition at line 445 of file lapi.c.
References lua_lock, lua_unlock, luaC_checkGC, and luaO_pushvfstring().
LUA_API void lua_pushlightuserdata | ( | lua_State * | L, | |
void * | p | |||
) |
Definition at line 482 of file lapi.c.
References api_incr_top, lua_lock, lua_unlock, setpvalue, and lua_State::top.
LUA_API void lua_pushlstring | ( | lua_State * | L, | |
const char * | s, | |||
size_t | len | |||
) |
Definition at line 417 of file lapi.c.
References api_incr_top, lua_lock, lua_unlock, luaC_checkGC, luaS_newlstr(), setsvalue2s, and lua_State::top.
Referenced by lua_pushstring().
LUA_API void lua_pushnil | ( | lua_State * | L | ) |
Definition at line 401 of file lapi.c.
References api_incr_top, lua_lock, lua_unlock, setnilvalue, and lua_State::top.
Referenced by lua_pushstring().
LUA_API void lua_pushnumber | ( | lua_State * | L, | |
lua_Number | n | |||
) |
Definition at line 409 of file lapi.c.
References api_incr_top, lua_lock, lua_unlock, setnvalue, and lua_State::top.
LUA_API void lua_pushstring | ( | lua_State * | L, | |
const char * | s | |||
) |
LUA_API int lua_pushupvalues | ( | lua_State * | L | ) |
Definition at line 877 of file lapi.c.
References api_check, lua_State::base, clvalue, CCallS::func, iscfunction, lua_lock, lua_unlock, luaD_checkstack, setobj2s, and lua_State::top.
Referenced by luaD_precall().
LUA_API void lua_pushvalue | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 220 of file lapi.c.
References api_incr_top, lua_lock, lua_unlock, luaA_index(), setobj2s, and lua_State::top.
LUA_API const char* lua_pushvfstring | ( | lua_State * | L, | |
const char * | fmt, | |||
va_list | argp | |||
) |
Definition at line 434 of file lapi.c.
References lua_lock, lua_unlock, luaC_checkGC, and luaO_pushvfstring().
LUA_API int lua_rawequal | ( | lua_State * | L, | |
int | index1, | |||
int | index2 | |||
) |
LUA_API void lua_rawget | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 505 of file lapi.c.
References api_check, hvalue, lua_lock, lua_unlock, luaA_index(), luaH_get(), setobj2s, lua_State::top, and ttistable.
LUA_API void lua_rawgeti | ( | lua_State * | L, | |
int | idx, | |||
int | n | |||
) |
Definition at line 515 of file lapi.c.
References api_check, api_incr_top, hvalue, lua_lock, lua_unlock, luaA_index(), luaH_getnum(), setobj2s, lua_State::top, and ttistable.
LUA_API void lua_rawset | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 589 of file lapi.c.
References api_check, api_checknelems, hvalue, lua_lock, lua_unlock, luaA_index(), luaH_set(), setobj2t, lua_State::top, and ttistable.
LUA_API void lua_rawseti | ( | lua_State * | L, | |
int | idx, | |||
int | n | |||
) |
Definition at line 601 of file lapi.c.
References api_check, api_checknelems, hvalue, lua_lock, lua_unlock, luaA_index(), luaH_setnum(), setobj2t, lua_State::top, and ttistable.
LUA_API void lua_remove | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 190 of file lapi.c.
References lua_lock, lua_unlock, luaA_index(), setobjs2s, and lua_State::top.
LUA_API void lua_replace | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 211 of file lapi.c.
References api_checknelems, lua_lock, lua_unlock, luaA_index(), setobj, and lua_State::top.
LUA_API int lua_setfenv | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 641 of file lapi.c.
References api_check, api_checknelems, clvalue, isLfunction, lua_lock, lua_unlock, luaA_index(), lua_State::top, and ttistable.
LUA_API void lua_setgcthreshold | ( | lua_State * | L, | |
int | newthreshold | |||
) |
Definition at line 799 of file lapi.c.
References cast, G, GCscalel, GCunscale, lua_lock, lua_unlock, luaC_checkGC, and MAX_LUMEM.
LUA_API int lua_setmetatable | ( | lua_State * | L, | |
int | objindex | |||
) |
Definition at line 613 of file lapi.c.
References api_check, api_checknelems, defaultmeta, hvalue, lua_lock, lua_unlock, luaA_index(), lua_State::top, ttisnil, ttistable, ttype, and uvalue.
LUA_API void lua_settable | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 578 of file lapi.c.
References api_checknelems, lua_lock, lua_unlock, luaA_index(), luaV_settable(), and lua_State::top.
LUA_API void lua_settop | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 174 of file lapi.c.
References api_check, lua_State::base, lua_lock, lua_unlock, setnilvalue, and lua_State::top.
LUA_API const char* lua_setupvalue | ( | lua_State * | L, | |
int | funcindex, | |||
int | n | |||
) |
Definition at line 933 of file lapi.c.
References api_checknelems, aux_upvalue(), lua_lock, lua_unlock, setobj, and lua_State::top.
LUA_API size_t lua_strlen | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 339 of file lapi.c.
References lua_lock, lua_unlock, luaA_indexAcceptable(), luaV_tostring(), tsvalue, and ttisstring.
LUA_API int lua_toboolean | ( | lua_State * | L, | |
int | idx | |||
) |
LUA_API lua_CFunction lua_tocfunction | ( | lua_State * | L, | |
int | idx | |||
) |
LUA_API lua_Number lua_tonumber | ( | lua_State * | L, | |
int | idx | |||
) |
LUA_API const void* lua_topointer | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 378 of file lapi.c.
References clvalue, hvalue, lua_touserdata(), luaA_indexAcceptable(), thvalue, and ttype.
LUA_API const char* lua_tostring | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 322 of file lapi.c.
References lua_lock, lua_unlock, luaA_indexAcceptable(), luaC_checkGC, luaV_tostring(), svalue, and ttisstring.
LUA_API void* lua_touserdata | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 361 of file lapi.c.
References luaA_indexAcceptable(), pvalue, ttype, and uvalue.
Referenced by lua_topointer().
LUA_API int lua_type | ( | lua_State * | L, | |
int | idx | |||
) |
Definition at line 234 of file lapi.c.
References luaA_indexAcceptable(), and ttype.
Referenced by lua_isstring().
LUA_API const char* lua_typename | ( | lua_State * | L, | |
int | t | |||
) |
Definition at line 125 of file lapi.c.
References api_checknelems, api_incr_top, lua_lock, lua_unlock, setobj2s, and lua_State::top.
Definition at line 73 of file lapi.c.
References api_check, lua_State::base, and negindex().
Referenced by aux_upvalue(), lua_getfenv(), lua_gettable(), lua_insert(), lua_next(), lua_pcall(), lua_pushvalue(), lua_rawget(), lua_rawgeti(), lua_rawset(), lua_rawseti(), lua_remove(), lua_replace(), lua_setfenv(), lua_setmetatable(), and lua_settable().
Definition at line 89 of file lapi.c.
References api_check, lua_State::base, negindex(), and lua_State::top.
Referenced by lua_equal(), lua_getmetatable(), lua_iscfunction(), lua_isnumber(), lua_isuserdata(), lua_lessthan(), lua_rawequal(), lua_strlen(), lua_toboolean(), lua_tocfunction(), lua_tonumber(), lua_topointer(), lua_tostring(), lua_tothread(), lua_touserdata(), and lua_type().
Definition at line 103 of file lapi.c.
References incr_top, setobj2s, and lua_State::top.
Referenced by lua_getlocal().
Definition at line 50 of file lapi.c.
References api_check, lua_State::base, clvalue, gt, iscfunction, lua_assert, and registry.
Referenced by luaA_index(), and luaA_indexAcceptable().
const char lua_ident[] |