ruby-changes:25603
From: usa <ko1@a...>
Date: Thu, 15 Nov 2012 15:20:28 +0900 (JST)
Subject: [ruby-changes:25603] usa:r37660 (ruby_1_9_3): merge revision(s) 35080: [Backport #7353]
usa 2012-11-15 15:20:18 +0900 (Thu, 15 Nov 2012) New Revision: 37660 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37660 Log: merge revision(s) 35080: [Backport #7353] * gc.c (free_method_entry_i): method entry may be in unlinked_method_entry_list. [ruby-core:43383][Bug #6171] Modified directories: branches/ruby_1_9_3/ Modified files: branches/ruby_1_9_3/ChangeLog branches/ruby_1_9_3/gc.c branches/ruby_1_9_3/test/ruby/test_method.rb branches/ruby_1_9_3/version.h Index: ruby_1_9_3/ChangeLog =================================================================== --- ruby_1_9_3/ChangeLog (revision 37659) +++ ruby_1_9_3/ChangeLog (revision 37660) @@ -1,3 +1,8 @@ +Thu Nov 15 15:17:11 2012 Nobuyoshi Nakada <nobu@r...> + + * gc.c (free_method_entry_i): method entry may be in + unlinked_method_entry_list. [ruby-core:43383][Bug #6171] + Wed Nov 14 20:20:46 2012 Naohisa Goto <ngotogenome@g...> * ruby_atomic.h: renamed from atomic.h to avoid header file name Index: ruby_1_9_3/gc.c =================================================================== --- ruby_1_9_3/gc.c (revision 37659) +++ ruby_1_9_3/gc.c (revision 37660) @@ -1673,7 +1673,9 @@ static int free_method_entry_i(ID key, rb_method_entry_t *me, st_data_t data) { - rb_free_method_entry(me); + if (!me->mark) { + rb_free_method_entry(me); + } return ST_CONTINUE; } Index: ruby_1_9_3/version.h =================================================================== --- ruby_1_9_3/version.h (revision 37659) +++ ruby_1_9_3/version.h (revision 37660) @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.3" -#define RUBY_PATCHLEVEL 331 +#define RUBY_PATCHLEVEL 332 #define RUBY_RELEASE_DATE "2012-11-15" #define RUBY_RELEASE_YEAR 2012 Index: ruby_1_9_3/test/ruby/test_method.rb =================================================================== --- ruby_1_9_3/test/ruby/test_method.rb (revision 37659) +++ ruby_1_9_3/test/ruby/test_method.rb (revision 37660) @@ -460,4 +460,16 @@ assert_nothing_raised { v.instance_eval { mv2 } } assert_nothing_raised { v.instance_eval { mv3 } } end + + def test_bound_method_entry + bug6171 = '[ruby-core:43383]' + assert_ruby_status([], <<-EOC, bug6171) + class Bug6171 + def initialize(target) + define_singleton_method(:reverse, target.method(:reverse).to_proc) + end + end + 1000.times {p = Bug6171.new('test'); 10000.times {p.reverse}} + EOC + end end Property changes on: ruby_1_9_3 ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r35080 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/