Remove ObjectSpace.count_nodes

ObjectSpace.count_nodes has been a no-op and returning an empty hash since
Ruby 2.5 because parser nodes are not GC managed.
This commit is contained in:
Peter Zhu 2025-12-29 10:19:19 -05:00
parent ef488bff98
commit e8c61f5139
Notes: git 2026-01-09 23:06:10 +00:00
2 changed files with 0 additions and 40 deletions

View File

@ -336,35 +336,6 @@ count_symbols(int argc, VALUE *argv, VALUE os)
return hash;
}
/*
* call-seq:
* ObjectSpace.count_nodes([result_hash]) -> hash
*
* Counts nodes for each node type.
*
* This method is only for MRI developers interested in performance and memory
* usage of Ruby programs.
*
* It returns a hash as:
*
* {:NODE_METHOD=>2027, :NODE_FBODY=>1927, :NODE_CFUNC=>1798, ...}
*
* If the optional argument, result_hash, is given, it is overwritten and
* returned. This is intended to avoid probe effect.
*
* Note:
* The contents of the returned hash is implementation defined.
* It may be changed in future.
*
* This method is only expected to work with C Ruby.
*/
static VALUE
count_nodes(int argc, VALUE *argv, VALUE os)
{
return setup_hash(argc, argv);
}
static void
cto_i(VALUE v, void *data)
{
@ -834,7 +805,6 @@ Init_objspace(void)
rb_define_module_function(rb_mObjSpace, "count_objects_size", count_objects_size, -1);
rb_define_module_function(rb_mObjSpace, "count_symbols", count_symbols, -1);
rb_define_module_function(rb_mObjSpace, "count_nodes", count_nodes, -1);
rb_define_module_function(rb_mObjSpace, "count_tdata_objects", count_tdata_objects, -1);
rb_define_module_function(rb_mObjSpace, "count_imemo_objects", count_imemo_objects, -1);

View File

@ -76,16 +76,6 @@ class TestObjSpace < Test::Unit::TestCase
assert_raise(TypeError) { ObjectSpace.count_objects_size(0) }
end
def test_count_nodes
res = ObjectSpace.count_nodes
assert_not_empty(res)
arg = {}
ObjectSpace.count_nodes(arg)
assert_not_empty(arg)
bug8014 = '[ruby-core:53130] [Bug #8014]'
assert_empty(arg.select {|k, v| !(Symbol === k && Integer === v)}, bug8014)
end if false
def test_count_tdata_objects
res = ObjectSpace.count_tdata_objects
assert_not_empty(res)