From af8df10d3b8b58d934b3603211d2ec9043098b3b Mon Sep 17 00:00:00 2001 From: wanabe Date: Thu, 30 Dec 2010 14:17:32 +0000 Subject: * vm.c (vm_define_method): guard iseq from GC while method definition. [ruby-dev:42832] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_gc.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'test') diff --git a/test/ruby/test_gc.rb b/test/ruby/test_gc.rb index 039240f1e0..32b6e9f481 100644 --- a/test/ruby/test_gc.rb +++ b/test/ruby/test_gc.rb @@ -63,4 +63,19 @@ class TestGc < Test::Unit::TestCase assert_equal(false, res.empty?) assert_kind_of(Integer, res[:count]) end + + def test_singleton_method + prev_stress = GC.stress + assert_nothing_raised("[ruby-dev:42832]") do + GC.stress = true + 10.times do + obj = Object.new + def obj.foo() end + def obj.bar() raise "obj.foo is called, but this is obj.bar" end + obj.foo + end + end + ensure + GC.stress = prev_stress + end end -- cgit v1.2.3