Commit eab754d8 authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto

Merge pull request #2021 from take-cheeze/count_objects_total

Always increment `total` field of `os_count_struct` in callback.
parents 9002fb79 c4f14755
...@@ -15,12 +15,13 @@ os_count_object_type(mrb_state *mrb, struct RBasic *obj, void *data) ...@@ -15,12 +15,13 @@ os_count_object_type(mrb_state *mrb, struct RBasic *obj, void *data)
struct os_count_struct *obj_count; struct os_count_struct *obj_count;
obj_count = (struct os_count_struct*)data; obj_count = (struct os_count_struct*)data;
obj_count->total++;
if (is_dead(mrb, obj)) { if (is_dead(mrb, obj)) {
obj_count->freed++; obj_count->freed++;
} }
else { else {
obj_count->counts[obj->tt]++; obj_count->counts[obj->tt]++;
obj_count->total++;
} }
} }
......
...@@ -10,6 +10,8 @@ assert('ObjectSpace.count_objects') do ...@@ -10,6 +10,8 @@ assert('ObjectSpace.count_objects') do
assert_true(h.has_key?(:FREE)) assert_true(h.has_key?(:FREE))
assert_true(h.has_key?(:T_FIBER)) if Object.const_defined? :Fiber assert_true(h.has_key?(:T_FIBER)) if Object.const_defined? :Fiber
assert_equal(h[:TOTAL] * 2, h.values.reduce(:+))
h = ObjectSpace.count_objects h = ObjectSpace.count_objects
assert_kind_of(Hash, h) assert_kind_of(Hash, h)
assert_true(h.keys.all? {|x| x.is_a?(Symbol) || x.is_a?(Integer) }) assert_true(h.keys.all? {|x| x.is_a?(Symbol) || x.is_a?(Integer) })
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment