summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-06 00:50:12 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-06 00:50:12 +0000
commitb1058ef46c04e8b76139d1985dd549a53396661b (patch)
treeb23c562070acc1b345bd7f1d217d7213da0d4b26 /gc.c
parent122de73a19cb5f08c56589748ebc98055fc964df (diff)
gc.c: use markable_object_p
* gc.c (gc_mark_children): use markable_object_p() and reduce duplicated code. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/gc.c b/gc.c
index f1f7aaa100..6301f6123d 100644
--- a/gc.c
+++ b/gc.c
@@ -2583,8 +2583,7 @@ gc_mark_children(rb_objspace_t *objspace, VALUE ptr)
again:
if (LIKELY(objspace->mark_func_data == 0)) {
obj = RANY(ptr);
- if (rb_special_const_p(ptr)) return; /* special const not marked */
- if (obj->as.basic.flags == 0) return; /* free cell */
+ if (!markable_object_p(objspace, ptr)) return;
if (!gc_mark_ptr(objspace, ptr)) return; /* already marked */
}
else {