diff --git a/3rd/lua/ldo.c b/3rd/lua/ldo.c index a60972b2..cb10dc86 100644 --- a/3rd/lua/ldo.c +++ b/3rd/lua/ldo.c @@ -191,7 +191,7 @@ int luaD_reallocstack (lua_State *L, int newsize, int raiseerror) { luaM_error(L); else return 0; /* do not raise an error */ } - for (; lim < newsize; lim++) + for (; lim < newsize + EXTRA_STACK; lim++) setnilvalue(s2v(newstack + lim)); /* erase new segment */ correctstack(L, L->stack, newstack); L->stack = newstack; diff --git a/3rd/lua/lstate.h b/3rd/lua/lstate.h index b70564a0..096bafd5 100644 --- a/3rd/lua/lstate.h +++ b/3rd/lua/lstate.h @@ -139,7 +139,7 @@ struct lua_longjmp; /* defined in ldo.c */ #define BASIC_STACK_SIZE (2*LUA_MINSTACK) -#define stacksize(th) cast_int((th)->stack_last - (th)->stack) +#define stacksize(th) cast_int((th)->stack_last + EXTRA_STACK - (th)->stack) /* kinds of Garbage Collection */