浏览该文件的文档.
17 #define luaM_error(L) luaD_throw(L, LUA_ERRMEM)
31 #define luaM_testsize(n,e) \
32 (sizeof(n) >= sizeof(size_t) && cast_sizet((n)) + 1 > MAX_SIZET/(e))
34 #define luaM_checksize(L,n,e) \
35 (luaM_testsize(n,e) ? luaM_toobig(L) : cast_void(0))
44 #define luaM_limitN(n,t) \
45 ((cast_sizet(n) <= MAX_SIZET/sizeof(t)) ? (n) : \
46 cast_uint((MAX_SIZET/sizeof(t))))
52 #define luaM_reallocvchar(L,b,on,n) \
53 cast_charp(luaM_saferealloc_(L, (b), (on)*sizeof(char), (n)*sizeof(char)))
55 #define luaM_freemem(L, b, s) luaM_free_(L, (b), (s))
56 #define luaM_free(L, b) luaM_free_(L, (b), sizeof(*(b)))
57 #define luaM_freearray(L, b, n) luaM_free_(L, (b), (n)*sizeof(*(b)))
59 #define luaM_new(L,t) cast(t*, luaM_malloc_(L, sizeof(t), 0))
60 #define luaM_newvector(L,n,t) cast(t*, luaM_malloc_(L, (n)*sizeof(t), 0))
61 #define luaM_newvectorchecked(L,n,t) \
62 (luaM_checksize(L,n,sizeof(t)), luaM_newvector(L,n,t))
64 #define luaM_newobject(L,tag,s) luaM_malloc_(L, (s), tag)
66 #define luaM_growvector(L,v,nelems,size,t,limit,e) \
67 ((v)=cast(t *, luaM_growaux_(L,v,nelems,&(size),sizeof(t), \
68 luaM_limitN(limit,t),e)))
70 #define luaM_reallocvector(L, v,oldn,n,t) \
71 (cast(t *, luaM_realloc_(L, v, cast_sizet(oldn) * sizeof(t), \
72 cast_sizet(n) * sizeof(t))))
74 #define luaM_shrinkvector(L,v,size,fs,t) \
75 ((v)=cast(t *, luaM_shrinkvector_(L, v, &(size), fs, sizeof(t))))
86 int *size,
int size_elem,
int limit,
89 int final_n,
int size_elem);
static const luaL_Reg randfuncs[]
Definition: lmathlib.c:631
#define lua_assert(c)
Definition: lauxlib.h:169
static int math_max(lua_State *L)
Definition: lmathlib.c:219
LUA_UNSIGNED lua_Unsigned
Definition: lua.h:97
#define PI
Definition: lmathlib.c:26
static lua_Unsigned I2UInt(Rand64 x)
Definition: lmathlib.c:501
#define LUAI_FUNC
Definition: luaconf.h:307
#define l_noret
Definition: llimits.h:178
LUAI_FUNC void * luaM_shrinkvector_(lua_State *L, void *block, int *nelem, int final_n, int size_elem)
Definition: lmem.c:110
static int math_asin(lua_State *L)
Definition: lmathlib.c:55
static int math_ult(lua_State *L)
Definition: lmathlib.c:162
LUAI_FUNC void * luaM_malloc_(lua_State *L, size_t size, int tag)
Definition: lmem.c:188
static int math_sqrt(lua_State *L)
Definition: lmathlib.c:156
LUA_API const char * lua_pushstring(lua_State *L, const char *s)
Definition: lapi.c:514
#define scaleFIG
Definition: lmathlib.c:460
static Rand64 Iadd(Rand64 i1, Rand64 i2)
Definition: lmathlib.c:401
static int math_log(lua_State *L)
Definition: lmathlib.c:169
static Rand64 times9(Rand64 i)
Definition: lmathlib.c:414
static lua_Unsigned project(lua_Unsigned ran, lua_Unsigned n, RanState *state)
Definition: lmathlib.c:531
#define unlikely(x)
Definition: llimits.h:162
LUA_API void lua_pushinteger(lua_State *L, lua_Integer n)
Definition: lapi.c:489
void luaM_free_(lua_State *L, void *block, size_t osize)
Definition: lmem.c:132
l_noret luaG_runerror(lua_State *L, const char *fmt,...)
Definition: ldebug.c:767
Definition: lmathlib.c:360
#define lua_pop(L, n)
Definition: lua.h:364
void * luaM_realloc_(lua_State *L, void *block, size_t osize, size_t nsize)
Definition: lmem.c:162
static int math_sin(lua_State *L)
Definition: lmathlib.c:40
static Rand64 rotl(Rand64 i, int n)
Definition: lmathlib.c:419
#define lua_isnoneornil(L, n)
Definition: lua.h:379
static int math_randomseed(lua_State *L)
Definition: lmathlib.c:617
LUAI_FUNC void * luaM_saferealloc_(lua_State *L, void *block, size_t oldsize, size_t size)
Definition: lmem.c:179
LUA_NUMBER lua_Number
Definition: lua.h:90
void * luaM_growaux_(lua_State *L, void *block, int nelems, int *psize, int size_elems, int limit, const char *what)
Definition: lmem.c:79
#define luaM_error(L)
Definition: lmem.h:17
static int math_deg(lua_State *L)
Definition: lmathlib.c:194
static int math_atan(lua_State *L)
Definition: lmathlib.c:65
LUA_API int lua_type(lua_State *L, int idx)
Definition: lapi.c:260
LUAMOD_API int luaopen_math(lua_State *L)
Definition: lmathlib.c:750
LUA_API void lua_pushnumber(lua_State *L, lua_Number n)
Definition: lapi.c:481
Definition: lmathlib.c:516
LUA_API int lua_isinteger(lua_State *L, int idx)
Definition: lapi.c:279
Rand64 s[4]
Definition: lmathlib.c:517
static void setseed(lua_State *L, Rand64 *state, lua_Unsigned n1, lua_Unsigned n2)
Definition: lmathlib.c:591
LUAI_FUNC void * luaM_growaux_(lua_State *L, void *block, int nelems, int *size, int size_elem, int limit, const char *what)
Definition: lmem.c:79
void * luaM_saferealloc_(lua_State *L, void *block, size_t osize, size_t nsize)
Definition: lmem.c:179
static const luaL_Reg mathlib[]
Definition: lmathlib.c:704
static void randseed(lua_State *L, RanState *state)
Definition: lmathlib.c:610
static int math_toint(lua_State *L)
Definition: lmathlib.c:73
static void Ixor(Rand64 *i1, Rand64 i2)
Definition: lmathlib.c:395
#define ttisnil(v)
Definition: lobject.h:171
lua_Alloc frealloc
Definition: lstate.h:220
#define lua_tointeger(L, i)
Definition: lua.h:362
LUA_API void lua_setfield(lua_State *L, int idx, const char *k)
Definition: lapi.c:847
void * ud
Definition: lstate.h:221
static int math_tan(lua_State *L)
Definition: lmathlib.c:50
#define G(L)
Definition: lstate.h:298
#define lua_numbertointeger(n, p)
Definition: luaconf.h:413
#define LUA_TNUMBER
Definition: lua.h:68
LUAI_FUNC l_noret luaM_toobig(lua_State *L)
Definition: lmem.c:124
static Rand64 Ishl(Rand64 i, int n)
Definition: lmathlib.c:389
#define firsttry(g, block, os, ns)
Definition: lmem.c:38
LUALIB_API void luaL_checkany(lua_State *L, int arg)
Definition: lauxlib.c:396
static int math_abs(lua_State *L)
Definition: lmathlib.c:29
#define LUA_OPLT
Definition: lua.h:223
static lua_Number I2d(Rand64 x)
Definition: lmathlib.c:466
LUA_API void * lua_touserdata(lua_State *L, int idx)
Definition: lapi.c:432
static int math_cos(lua_State *L)
Definition: lmathlib.c:45
unsigned long lu_int32
Definition: lmathlib.c:353
static int math_exp(lua_State *L)
Definition: lmathlib.c:189
l_mem GCdebt
Definition: lstate.h:223
#define luaL_argcheck(L, cond, arg, extramsg)
Definition: lauxlib.h:132
LUA_API int lua_gettop(lua_State *L)
Definition: lapi.c:168
LUA_INTEGER lua_Integer
Definition: lua.h:94
static int math_floor(lua_State *L)
Definition: lmathlib.c:95
#define trim32(x)
Definition: lmathlib.c:373
LUA_API void lua_settop(lua_State *L, int idx)
Definition: lapi.c:173
static int math_rad(lua_State *L)
Definition: lmathlib.c:199
LUA_API void lua_pushboolean(lua_State *L, int b)
Definition: lapi.c:581
LUA_API void lua_pushvalue(lua_State *L, int idx)
Definition: lapi.c:246
#define FIGS
Definition: lmathlib.c:252
#define cast_sizet(i)
Definition: llimits.h:134
void * luaM_shrinkvector_(lua_State *L, void *block, int *size, int final_n, int size_elem)
Definition: lmem.c:110
static void block(LexState *ls)
Definition: lparser.c:1293
#define LUAMOD_API
Definition: luaconf.h:286
static Rand64 rotl1(Rand64 i, int n)
Definition: lmathlib.c:426
static int math_ceil(lua_State *L)
Definition: lmathlib.c:106
LUALIB_API void luaL_setfuncs(lua_State *L, const luaL_Reg *l, int nup)
Definition: lauxlib.c:916
LUALIB_API lua_Integer luaL_optinteger(lua_State *L, int arg, lua_Integer def)
Definition: lauxlib.c:452
static int math_random(lua_State *L)
Definition: lmathlib.c:556
static int math_type(lua_State *L)
Definition: lmathlib.c:233
static void setrandfunc(lua_State *L)
Definition: lmathlib.c:641
static Rand64 times5(Rand64 i)
Definition: lmathlib.c:409
static Rand64 packI(lu_int32 h, lu_int32 l)
Definition: lmathlib.c:381
static void pushnumint(lua_State *L, lua_Number d)
Definition: lmathlib.c:86
#define l_mathop(op)
Definition: luaconf.h:463
#define luaL_newlib(L, l)
Definition: lauxlib.h:129
LUALIB_API lua_Number luaL_checknumber(lua_State *L, int arg)
Definition: lauxlib.c:420
LUALIB_API int luaL_error(lua_State *L, const char *fmt,...)
Definition: lauxlib.c:234
static int math_min(lua_State *L)
Definition: lmathlib.c:205
LUALIB_API lua_Number luaL_optnumber(lua_State *L, int arg, lua_Number def)
Definition: lauxlib.c:429
#define lua_isnone(L, n)
Definition: lua.h:378
void * luaM_malloc_(lua_State *L, size_t size, int tag)
Definition: lmem.c:188
LUA_API void * lua_newuserdatauv(lua_State *L, size_t size, int nuvalue)
Definition: lapi.c:1318
LUALIB_API lua_Integer luaL_checkinteger(lua_State *L, int arg)
Definition: lauxlib.c:442
LUA_API lua_Integer lua_tointegerx(lua_State *L, int idx, int *pisnum)
Definition: lapi.c:365
static void * tryagain(lua_State *L, void *block, size_t osize, size_t nsize)
Definition: lmem.c:146
#define MINSIZEARRAY
Definition: lmem.c:76
TValue nilvalue
Definition: lstate.h:228
void luaC_fullgc(lua_State *L, int isemergency)
Definition: lgc.c:1703
static Rand64 Int2I(lua_Unsigned n)
Definition: lmathlib.c:506
static int math_fmod(lua_State *L)
Definition: lmathlib.c:117
LUAI_FUNC void luaM_free_(lua_State *L, void *block, size_t osize)
Definition: lmem.c:132
#define lua_upvalueindex(i)
Definition: lua.h:45
static int math_acos(lua_State *L)
Definition: lmathlib.c:60
LUA_API int lua_compare(lua_State *L, int index1, int index2, int op)
Definition: lapi.c:327
static Rand64 nextrand(Rand64 *state)
Definition: lmathlib.c:436
lu_int32 h
Definition: lmathlib.c:361
LUAI_FUNC void * luaM_realloc_(lua_State *L, void *block, size_t oldsize, size_t size)
Definition: lmem.c:162
static int math_modf(lua_State *L)
Definition: lmathlib.c:139
#define luaL_pushfail(L)
Definition: lauxlib.h:157
l_noret luaM_toobig(lua_State *L)
Definition: lmem.c:124
lu_int32 l
Definition: lmathlib.c:362
int n
Definition: lparser.h:131