summaryrefslogtreecommitdiff
path: root/test_code.rb
diff options
context:
space:
mode:
authorMatt Valentine-House <matt@eightbitraptor.com>2023-09-08 14:31:29 +0100
committerMatt Valentine-House <matt@eightbitraptor.com>2023-09-08 17:45:00 +0100
commit7f53da94fb23687ef3bea0507199196a00ca26f8 (patch)
tree94f75eea75adde228eb24623f11617b533ebd110 /test_code.rb
parent60ef156b1463629d94cf7139430d129dd68a418f (diff)
Fix weak_references count test
This test creates a lot of Objects held in an array, and a set of weak references to them using WeakMap. It then clears the array and frees it and asserts that all the weak references to it are also gone. This test is failing because one of the dummy objects in our weakmap is ending up on the stack, and so is being marked, even though we thought that we'd removed the only reference to it. This behaviour has changed since this commit: https://github.com/ruby/ruby/commit/5b5ae3d9e064e17e2a7d8d21d739fcc62ae1075c which rewrites `Integer#times` from C into Ruby. This change is somehow causing the last object we append to our array to consistently end up on the stack during GC. This commit fixes the specific weakmap test by using an enumerator and each, instead of `Integer#times`, and thus avoids having our last object created end up on the stack.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/8402
Diffstat (limited to 'test_code.rb')
0 files changed, 0 insertions, 0 deletions