1
0
mirror of https://github.com/lua/lua.git synced 2025-01-14 05:43:00 +08:00

bug: 'lua_pushcclosure' should not call the garbage collector when

'n' is zero.
This commit is contained in:
Roberto Ierusalimschy 2017-12-06 16:20:28 -02:00
parent ae11e37e53
commit 348fa1ca56

37
bugs
View File

@ -3680,9 +3680,9 @@ It needs an "interceptor" 'memcmp' function that continues
reading memory after a difference is found.]],
patch = [[
2c2
< ** $Id: bugs,v 1.156 2017/08/12 13:12:42 roberto Exp roberto $
< ** $Id: bugs,v 1.157 2017/08/31 16:14:41 roberto Exp roberto $
---
> ** $Id: bugs,v 1.156 2017/08/12 13:12:42 roberto Exp roberto $
> ** $Id: bugs,v 1.157 2017/08/31 16:14:41 roberto Exp roberto $
263c263,264
< for (option = LUA_STRFTIMEOPTIONS; *option != '\0'; option += oplen) {
---
@ -3871,6 +3871,39 @@ patch = [[
}
Bug{
what = [['lua_pushcclosure' should not call the garbage collector when
'n' is zero.]],
report = [[Andrew Gierth, 2017/12/05]],
since = [[5.3.3]],
fix = nil,
example = [[ ]],
patch = [[
--- lapi.c 2017/04/19 17:13:00 2.259.1.1
+++ lapi.c 2017/12/06 18:14:45
@@ -533,6 +533,7 @@
lua_lock(L);
if (n == 0) {
setfvalue(L->top, fn);
+ api_incr_top(L);
}
else {
CClosure *cl;
@@ -546,9 +547,9 @@
/* 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);
}
]]
}
--[=[