ruby-changes:5369
From: akr <ko1@a...>
Date: Sat, 7 Jun 2008 17:13:43 +0900 (JST)
Subject: [ruby-changes:5369] Ruby:r16872 (ruby_1_8): * gc.c (os_obj_of): assure to not free the scanning heap.
akr 2008-06-07 17:12:44 +0900 (Sat, 07 Jun 2008) New Revision: 16872 Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/gc.c Log: * gc.c (os_obj_of): assure to not free the scanning heap. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=16872&r2=16871&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/gc.c?r1=16872&r2=16871&diff_format=u Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 16871) +++ ruby_1_8/ChangeLog (revision 16872) @@ -1,3 +1,7 @@ +Sat Jun 7 17:11:29 2008 Tanaka Akira <akr@f...> + + * gc.c (os_obj_of): assure to not free the scanning heap. + Sat Jun 7 16:06:14 2008 Nobuyoshi Nakada <nobu@r...> * configure.in (CFLAGS, CXXFLAGS): append default flags. Index: ruby_1_8/gc.c =================================================================== --- ruby_1_8/gc.c (revision 16871) +++ ruby_1_8/gc.c (revision 16872) @@ -1644,6 +1644,7 @@ { int i; int n = 0; + volatile VALUE v; for (i = 0; i < heaps_used; i++) { RVALUE *p, *pend; @@ -1662,8 +1663,9 @@ if (FL_TEST(p, FL_SINGLETON)) continue; default: if (!p->as.basic.klass) continue; - if (!of || rb_obj_is_kind_of((VALUE)p, of)) { - rb_yield((VALUE)p); + v = (VALUE)p; + if (!of || rb_obj_is_kind_of(v, of)) { + rb_yield(v); n++; } } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/