24 lines
634 B
Diff
24 lines
634 B
Diff
|
diff -up lua-5.3.4/src/lapi.c.bug6 lua-5.3.4/src/lapi.c
|
||
|
--- lua-5.3.4/src/lapi.c.bug6 2018-02-13 10:18:59.386451581 -0500
|
||
|
+++ lua-5.3.4/src/lapi.c 2018-02-13 10:19:42.700575448 -0500
|
||
|
@@ -533,6 +533,7 @@ LUA_API void lua_pushcclosure (lua_State
|
||
|
lua_lock(L);
|
||
|
if (n == 0) {
|
||
|
setfvalue(L->top, fn);
|
||
|
+ api_incr_top(L);
|
||
|
}
|
||
|
else {
|
||
|
CClosure *cl;
|
||
|
@@ -546,9 +547,9 @@ LUA_API void lua_pushcclosure (lua_State
|
||
|
/* does not need barrier because closure is white */
|
||
|
}
|
||
|
setclCvalue(L, L->top, cl);
|
||
|
+ api_incr_top(L);
|
||
|
+ luaC_checkGC(L);
|
||
|
}
|
||
|
- api_incr_top(L);
|
||
|
- luaC_checkGC(L);
|
||
|
lua_unlock(L);
|
||
|
}
|
||
|
|