mirror of
https://github.com/lua/lua
synced 2026-09-29 04:35:58 +03:00
Reviving HARDMEMTESTS
This commit brings a new implementation for HARDMEMTESTS, which forces
an emergency GC whenever possible. It also fixes some issues detected
with this option:
- A small bug in lvm.c: a closure could be collected by an emergency
GC while being initialized.
- Some tests: a memory address can be immediatly reused after a GC;
for instance, two consecutive '{}' expressions can return exactly the
same address, if the first one is not anchored.
This commit is contained in:
parent
024a6071ca
commit
d36a31e673
4 changed files with 35 additions and 15 deletions
|
|
@ -354,8 +354,11 @@ assert(to("topointer", nil) == null)
|
|||
assert(to("topointer", "abc") ~= null)
|
||||
assert(to("topointer", string.rep("x", 10)) ==
|
||||
to("topointer", string.rep("x", 10))) -- short strings
|
||||
assert(to("topointer", string.rep("x", 300)) ~=
|
||||
to("topointer", string.rep("x", 300))) -- long strings
|
||||
do -- long strings
|
||||
local s1 = string.rep("x", 300)
|
||||
local s2 = string.rep("x", 300)
|
||||
assert(to("topointer", s1) ~= to("topointer", s2))
|
||||
end
|
||||
assert(to("topointer", T.pushuserdata(20)) ~= null)
|
||||
assert(to("topointer", io.read) ~= null) -- light C function
|
||||
assert(to("topointer", hfunc) ~= null) -- "heavy" C function
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue