ruby-changes:19988
From: ko1 <ko1@a...>
Date: Mon, 13 Jun 2011 04:44:55 +0900 (JST)
Subject: [ruby-changes:19988] ko1:r32035 (trunk): * ext/objspace/objspace.c (total_i): fix to skip no ruby objects.
ko1 2011-06-13 04:44:48 +0900 (Mon, 13 Jun 2011) New Revision: 32035 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=32035 Log: * ext/objspace/objspace.c (total_i): fix to skip no ruby objects. Modified files: trunk/ChangeLog trunk/ext/objspace/objspace.c Index: ChangeLog =================================================================== --- ChangeLog (revision 32034) +++ ChangeLog (revision 32035) @@ -1,3 +1,7 @@ +Mon Jun 13 04:42:24 2011 Koichi Sasada <ko1@a...> + + * ext/objspace/objspace.c (total_i): fix to skip no ruby objects. + Mon Jun 13 03:07:38 2011 NARUSE, Yui <naruse@r...> * test/benchmark/test_benchmark.rb (capture_output): Index: ext/objspace/objspace.c =================================================================== --- ext/objspace/objspace.c (revision 32034) +++ ext/objspace/objspace.c (revision 32035) @@ -185,8 +185,19 @@ for (v = (VALUE)vstart; v != (VALUE)vend; v += stride) { if (RBASIC(v)->flags) { - if (data->klass == 0 || rb_obj_is_kind_of(v, data->klass)) { - data->total += memsize_of(v); + switch (BUILTIN_TYPE(v)) { + case T_NONE: + case T_ICLASS: + case T_NODE: + case T_ZOMBIE: + continue; + case T_CLASS: + if (FL_TEST(v, FL_SINGLETON)) + continue; + default: + if (data->klass == 0 || rb_obj_is_kind_of(v, data->klass)) { + data->total += memsize_of(v); + } } } } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/