aboutsummaryrefslogtreecommitdiff
path: root/testes
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2020-07-13 13:39:02 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2020-07-13 13:39:02 -0300
commite1d8770f12542d34a3e32b825c95b93f8a341ee1 (patch)
tree15296aaedd195efd19192052af2192fcd7c12f54 /testes
parent0f1cd0eba99ea6d383e75b9ae488d00ad541c210 (diff)
downloadlua-e1d8770f12542d34a3e32b825c95b93f8a341ee1.tar.gz
lua-e1d8770f12542d34a3e32b825c95b93f8a341ee1.tar.bz2
lua-e1d8770f12542d34a3e32b825c95b93f8a341ee1.zip
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.
Diffstat (limited to 'testes')
-rw-r--r--testes/cstack.lua16
1 files changed, 16 insertions, 0 deletions
diff --git a/testes/cstack.lua b/testes/cstack.lua
index e3e14f74..4e37b988 100644
--- a/testes/cstack.lua
+++ b/testes/cstack.lua
@@ -105,6 +105,22 @@ do print("testing stack-overflow in recursive 'gsub'")
105 print("\tfinal count: ", count) 105 print("\tfinal count: ", count)
106end 106end
107 107
108do -- bug in 5.4.0
109 print("testing limits in coroutines inside deep calls")
110 count = 0
111 local lim = 1000
112 local function stack (n)
113 progress()
114 if n > 0 then return stack(n - 1) + 1
115 else coroutine.wrap(function ()
116 stack(lim)
117 end)()
118 end
119 end
120
121 print(xpcall(stack, function () return "ok" end, lim))
122end
123
108 124
109do print("testing changes in C-stack limit") 125do print("testing changes in C-stack limit")
110 126