mirror of
https://github.com/lua/lua
synced 2024-11-24 13:49:39 +03:00
Bug: Wrong limit for local variables in 16-bit systems
USHRT_MAX does not fit in an 'int' in 16-bit systems.
This commit is contained in:
parent
782ef85b22
commit
9f0c0fe0de
2
lapi.c
2
lapi.c
@ -1343,7 +1343,7 @@ void lua_warning (lua_State *L, const char *msg, int tocont) {
|
||||
LUA_API void *lua_newuserdatauv (lua_State *L, size_t size, int nuvalue) {
|
||||
Udata *u;
|
||||
lua_lock(L);
|
||||
api_check(L, 0 <= nuvalue && nuvalue < USHRT_MAX, "invalid value");
|
||||
api_check(L, 0 <= nuvalue && nuvalue < SHRT_MAX, "invalid value");
|
||||
u = luaS_newudata(L, size, nuvalue);
|
||||
setuvalue(L, s2v(L->top.p), u);
|
||||
api_incr_top(L);
|
||||
|
@ -198,7 +198,7 @@ static int new_localvar (LexState *ls, TString *name) {
|
||||
checklimit(fs, dyd->actvar.n + 1 - fs->firstlocal,
|
||||
MAXVARS, "local variables");
|
||||
luaM_growvector(L, dyd->actvar.arr, dyd->actvar.n + 1,
|
||||
dyd->actvar.size, Vardesc, USHRT_MAX, "local variables");
|
||||
dyd->actvar.size, Vardesc, SHRT_MAX, "local variables");
|
||||
var = &dyd->actvar.arr[dyd->actvar.n++];
|
||||
var->vd.kind = VDKREG; /* default */
|
||||
var->vd.name = name;
|
||||
|
Loading…
Reference in New Issue
Block a user