lua 5.3.4 bug report 6

This commit is contained in:
Cloud Wu
2018-05-17 12:03:03 +08:00
parent 4dd622e180
commit 294f557268

View File

@@ -534,6 +534,7 @@ LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) {
lua_lock(L); lua_lock(L);
if (n == 0) { if (n == 0) {
setfvalue(L->top, fn); setfvalue(L->top, fn);
api_incr_top(L);
} }
else { else {
CClosure *cl; CClosure *cl;
@@ -547,9 +548,9 @@ LUA_API void lua_pushcclosure (lua_State *L, lua_CFunction fn, int n) {
/* does not need barrier because closure is white */ /* does not need barrier because closure is white */
} }
setclCvalue(L, L->top, cl); setclCvalue(L, L->top, cl);
api_incr_top(L);
luaC_checkGC(L);
} }
api_incr_top(L);
luaC_checkGC(L);
lua_unlock(L); lua_unlock(L);
} }