ObjectSpace.each_object should filter out internal (i.e. obj->c == NULL) objects; ref #2429

This commit is contained in:
Yukihiro "Matz" Matsumoto
2014-06-28 01:08:23 +09:00
parent f9076230f2
commit 9a28ae921b
@@ -126,6 +126,9 @@ os_each_object_cb(mrb_state *mrb, struct RBasic *obj, void *ud)
return;
}
/* filter half baked (or internal) objects */
if (!obj->c) return;
/* filter class kind if target module defined */
if (d->target_module && !mrb_obj_is_kind_of(mrb, mrb_obj_value(obj), d->target_module)) {
return;