diff options
-rw-r--r-- | test/ruby/test_weakmap.rb | 10 | ||||
-rw-r--r-- | weakmap.c | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/test/ruby/test_weakmap.rb b/test/ruby/test_weakmap.rb index d84eb8241e..9bbe2d6b81 100644 --- a/test/ruby/test_weakmap.rb +++ b/test/ruby/test_weakmap.rb @@ -183,5 +183,15 @@ class TestWeakMap < Test::Unit::TestCase GC.compact @wm[i] = obj end + + assert_separately(%w(--disable-gems), <<-'end;') + wm = ObjectSpace::WeakMap.new + obj = Object.new + 100.times do + wm[Object.new] = obj + GC.start + end + GC.compact + end; end end @@ -17,7 +17,7 @@ wmap_replace_ref(st_data_t *key, st_data_t *value, st_data_t _argp, int existing { *key = rb_gc_location((VALUE)*key); - VALUE *values = (VALUE *)value; + VALUE *values = (VALUE *)*value; VALUE size = values[0]; for (VALUE index = 1; index <= size; index++) { |