ruby-changes:5526
From: knu <ko1@a...>
Date: Mon, 9 Jun 2008 03:26:58 +0900 (JST)
Subject: [ruby-changes:5526] Ruby:r17029 (ruby_1_8_7): * gc.c (os_obj_of): assure to not free the scanning heap.
knu 2008-06-09 03:21:56 +0900 (Mon, 09 Jun 2008) New Revision: 17029 Modified files: branches/ruby_1_8_7/ChangeLog branches/ruby_1_8_7/gc.c branches/ruby_1_8_7/version.h 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_7/gc.c?r1=17029&r2=17028&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_7/ChangeLog?r1=17029&r2=17028&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8_7/version.h?r1=17029&r2=17028&diff_format=u Index: ruby_1_8_7/ChangeLog =================================================================== --- ruby_1_8_7/ChangeLog (revision 17028) +++ ruby_1_8_7/ChangeLog (revision 17029) @@ -1,3 +1,7 @@ +Mon Jun 9 03:21:20 2008 Tanaka Akira <akr@f...> + + * gc.c (os_obj_of): assure to not free the scanning heap. + Mon Jun 9 03:20:12 2008 NAKAMURA Usaku <usa@r...> * io.c (rb_open_file, rb_io_s_sysopen): fmode should be unsigned int. Index: ruby_1_8_7/version.h =================================================================== --- ruby_1_8_7/version.h (revision 17028) +++ ruby_1_8_7/version.h (revision 17029) @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2008-06-09" #define RUBY_VERSION_CODE 187 #define RUBY_RELEASE_CODE 20080609 -#define RUBY_PATCHLEVEL 11 +#define RUBY_PATCHLEVEL 12 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 Index: ruby_1_8_7/gc.c =================================================================== --- ruby_1_8_7/gc.c (revision 17028) +++ ruby_1_8_7/gc.c (revision 17029) @@ -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/