mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
ext/objspace/objspace.c: remove unneeded code clones.
`setup_hash` have already performed nil check and empty check. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
df33c063fc
commit
05561ad75c
2 changed files with 11 additions and 22 deletions
|
@ -203,7 +203,7 @@ type2sym(enum ruby_value_type i)
|
||||||
*
|
*
|
||||||
* Note that this information is incomplete. You need to deal with
|
* Note that this information is incomplete. You need to deal with
|
||||||
* this information as only a *HINT*. Especially, total size of
|
* this information as only a *HINT*. Especially, total size of
|
||||||
* T_DATA may not right size.
|
* T_DATA may be wrong.
|
||||||
*
|
*
|
||||||
* It returns a hash as:
|
* It returns a hash as:
|
||||||
* {:TOTAL=>1461154, :T_CLASS=>158280, :T_MODULE=>20672, :T_STRING=>527249, ...}
|
* {:TOTAL=>1461154, :T_CLASS=>158280, :T_MODULE=>20672, :T_STRING=>527249, ...}
|
||||||
|
@ -232,13 +232,6 @@ count_objects_size(int argc, VALUE *argv, VALUE os)
|
||||||
|
|
||||||
rb_objspace_each_objects(cos_i, &counts[0]);
|
rb_objspace_each_objects(cos_i, &counts[0]);
|
||||||
|
|
||||||
if (hash == Qnil) {
|
|
||||||
hash = rb_hash_new();
|
|
||||||
}
|
|
||||||
else if (!RHASH_EMPTY_P(hash)) {
|
|
||||||
st_foreach(RHASH_TBL(hash), set_zero_i, hash);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i <= T_MASK; i++) {
|
for (i = 0; i <= T_MASK; i++) {
|
||||||
if (counts[i]) {
|
if (counts[i]) {
|
||||||
VALUE type = type2sym(i);
|
VALUE type = type2sym(i);
|
||||||
|
@ -313,13 +306,6 @@ count_symbols(int argc, VALUE *argv, VALUE os)
|
||||||
size_t immortal_symbols = rb_sym_immortal_count();
|
size_t immortal_symbols = rb_sym_immortal_count();
|
||||||
rb_objspace_each_objects(cs_i, &dynamic_counts);
|
rb_objspace_each_objects(cs_i, &dynamic_counts);
|
||||||
|
|
||||||
if (hash == Qnil) {
|
|
||||||
hash = rb_hash_new();
|
|
||||||
}
|
|
||||||
else if (!RHASH_EMPTY_P(hash)) {
|
|
||||||
st_foreach(RHASH_TBL(hash), set_zero_i, hash);
|
|
||||||
}
|
|
||||||
|
|
||||||
rb_hash_aset(hash, ID2SYM(rb_intern("mortal_dynamic_symbol")), SIZET2NUM(dynamic_counts.mortal));
|
rb_hash_aset(hash, ID2SYM(rb_intern("mortal_dynamic_symbol")), SIZET2NUM(dynamic_counts.mortal));
|
||||||
rb_hash_aset(hash, ID2SYM(rb_intern("immortal_dynamic_symbol")), SIZET2NUM(dynamic_counts.immortal));
|
rb_hash_aset(hash, ID2SYM(rb_intern("immortal_dynamic_symbol")), SIZET2NUM(dynamic_counts.immortal));
|
||||||
rb_hash_aset(hash, ID2SYM(rb_intern("immortal_static_symbol")), SIZET2NUM(immortal_symbols - dynamic_counts.immortal));
|
rb_hash_aset(hash, ID2SYM(rb_intern("immortal_static_symbol")), SIZET2NUM(immortal_symbols - dynamic_counts.immortal));
|
||||||
|
@ -380,13 +366,6 @@ count_nodes(int argc, VALUE *argv, VALUE os)
|
||||||
|
|
||||||
rb_objspace_each_objects(cn_i, &nodes[0]);
|
rb_objspace_each_objects(cn_i, &nodes[0]);
|
||||||
|
|
||||||
if (hash == Qnil) {
|
|
||||||
hash = rb_hash_new();
|
|
||||||
}
|
|
||||||
else if (!RHASH_EMPTY_P(hash)) {
|
|
||||||
st_foreach(RHASH_TBL(hash), set_zero_i, hash);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i=0; i<NODE_LAST; i++) {
|
for (i=0; i<NODE_LAST; i++) {
|
||||||
if (nodes[i] != 0) {
|
if (nodes[i] != 0) {
|
||||||
VALUE node;
|
VALUE node;
|
||||||
|
|
|
@ -61,9 +61,19 @@ class TestObjSpace < Test::Unit::TestCase
|
||||||
res = ObjectSpace.count_objects_size
|
res = ObjectSpace.count_objects_size
|
||||||
assert_not_empty(res)
|
assert_not_empty(res)
|
||||||
assert_operator(res[:TOTAL], :>, 0)
|
assert_operator(res[:TOTAL], :>, 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_count_objects_size_with_hash
|
||||||
arg = {}
|
arg = {}
|
||||||
ObjectSpace.count_objects_size(arg)
|
ObjectSpace.count_objects_size(arg)
|
||||||
assert_not_empty(arg)
|
assert_not_empty(arg)
|
||||||
|
arg = {:TOTAL => 1 }
|
||||||
|
ObjectSpace.count_objects_size(arg)
|
||||||
|
assert_not_empty(arg)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_count_objects_size_with_wrong_type
|
||||||
|
assert_raise(TypeError) { ObjectSpace.count_objects_size(0) }
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_count_nodes
|
def test_count_nodes
|
||||||
|
|
Loading…
Reference in a new issue