ruby-changes:27543
From: nobu <ko1@a...>
Date: Tue, 5 Mar 2013 10:41:15 +0900 (JST)
Subject: [ruby-changes:27543] nobu:r39595 (trunk): objspace.c: newly added nodes
nobu 2013-03-05 10:40:52 +0900 (Tue, 05 Mar 2013) New Revision: 39595 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=39595 Log: objspace.c: newly added nodes * ext/objspace/objspace.c (count_nodes): count also newly added nodes, and fix key for unknown node. patch by tmm1 (Aman Gupta) in [ruby-core:53130] [Bug #8014] Modified files: trunk/ChangeLog trunk/ext/objspace/objspace.c trunk/test/objspace/test_objspace.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 39594) +++ ChangeLog (revision 39595) @@ -1,3 +1,9 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1 +Tue Mar 5 10:40:22 2013 Nobuyoshi Nakada <nobu@r...> + + * ext/objspace/objspace.c (count_nodes): count also newly added nodes, + and fix key for unknown node. patch by tmm1 (Aman Gupta) in + [ruby-core:53130] [Bug #8014] + Tue Mar 5 10:20:16 2013 Nobuyoshi Nakada <nobu@r...> * enumerator.c (enumerator_with_index_i): allow Bignum as offset, to Index: ext/objspace/objspace.c =================================================================== --- ext/objspace/objspace.c (revision 39594) +++ ext/objspace/objspace.c (revision 39595) @@ -469,6 +469,7 @@ count_nodes(int argc, VALUE *argv, VALUE https://github.com/ruby/ruby/blob/trunk/ext/objspace/objspace.c#L469 COUNT_NODE(NODE_OP_ASGN2); COUNT_NODE(NODE_OP_ASGN_AND); COUNT_NODE(NODE_OP_ASGN_OR); + COUNT_NODE(NODE_OP_CDECL); COUNT_NODE(NODE_CALL); COUNT_NODE(NODE_FCALL); COUNT_NODE(NODE_VCALL); @@ -502,6 +503,7 @@ count_nodes(int argc, VALUE *argv, VALUE https://github.com/ruby/ruby/blob/trunk/ext/objspace/objspace.c#L503 COUNT_NODE(NODE_ARGS); COUNT_NODE(NODE_ARGS_AUX); COUNT_NODE(NODE_OPT_ARG); + COUNT_NODE(NODE_KW_ARG); COUNT_NODE(NODE_POSTARG); COUNT_NODE(NODE_ARGSCAT); COUNT_NODE(NODE_ARGSPUSH); @@ -519,6 +521,7 @@ count_nodes(int argc, VALUE *argv, VALUE https://github.com/ruby/ruby/blob/trunk/ext/objspace/objspace.c#L521 COUNT_NODE(NODE_SCLASS); COUNT_NODE(NODE_COLON2); COUNT_NODE(NODE_COLON3); + COUNT_NODE(NODE_CREF); COUNT_NODE(NODE_DOT2); COUNT_NODE(NODE_DOT3); COUNT_NODE(NODE_FLIP2); @@ -539,7 +542,7 @@ count_nodes(int argc, VALUE *argv, VALUE https://github.com/ruby/ruby/blob/trunk/ext/objspace/objspace.c#L542 COUNT_NODE(NODE_PRELUDE); COUNT_NODE(NODE_LAMBDA); #undef COUNT_NODE - default: node = INT2FIX(nodes[i]); + default: node = INT2FIX(i); } rb_hash_aset(hash, node, SIZET2NUM(nodes[i])); } Index: test/objspace/test_objspace.rb =================================================================== --- test/objspace/test_objspace.rb (revision 39594) +++ test/objspace/test_objspace.rb (revision 39595) @@ -58,7 +58,9 @@ class TestObjSpace < Test::Unit::TestCas https://github.com/ruby/ruby/blob/trunk/test/objspace/test_objspace.rb#L58 assert_equal(false, res.empty?) arg = {} ObjectSpace.count_nodes(arg) - assert_equal(false, arg.empty?) + assert_not_empty(arg) + bug8014 = '[ruby-core:53130] [Bug #8014]' + assert_empty(arg.select {|k, v| !(Symbol === k && Integer === v)}, bug8014) end def test_count_tdata_objects -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/