Fixed bug: wrong stack limit when entering a coroutine

When entering a coroutine, the computation of nCcalls added 'from->nci'
to correct for preallocated CallInfos, but 'nci' includes also the
Callinfos already used.
This commit is contained in:
Roberto Ierusalimschy
2020-07-13 13:39:02 -03:00
parent 0f1cd0eba9
commit e1d8770f12
2 changed files with 17 additions and 1 deletions

View File

@@ -105,6 +105,22 @@ do print("testing stack-overflow in recursive 'gsub'")
print("\tfinal count: ", count)
end
do -- bug in 5.4.0
print("testing limits in coroutines inside deep calls")
count = 0
local lim = 1000
local function stack (n)
progress()
if n > 0 then return stack(n - 1) + 1
else coroutine.wrap(function ()
stack(lim)
end)()
end
end
print(xpcall(stack, function () return "ok" end, lim))
end
do print("testing changes in C-stack limit")