diff options
author | nari <nari@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-08-04 11:40:59 +0000 |
---|---|---|
committer | nari <nari@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-08-04 11:40:59 +0000 |
commit | d7a33316825d3393f1f7e50ab76926b6891b5a89 (patch) | |
tree | 4bc522eb228c9ef34c8bc5ff349469122d267c74 /gc.c | |
parent | cd060b4588b80786f921ab8d8e80efc143dce5fe (diff) | |
download | ruby-d7a33316825d3393f1f7e50ab76926b6891b5a89.tar.gz |
* gc.c (gc_mark_children): use gc_mark_ptr instead of marking
a object directly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 6 |
1 files changed, 1 insertions, 5 deletions
@@ -1839,7 +1839,6 @@ static void gc_mark_children(rb_objspace_t *objspace, VALUE ptr, int lev) { register RVALUE *obj = RANY(ptr); - register uintptr_t *bits; goto marking; /* skip */ @@ -1847,10 +1846,7 @@ gc_mark_children(rb_objspace_t *objspace, VALUE ptr, int lev) obj = RANY(ptr); if (rb_special_const_p(ptr)) return; /* special const not marked */ if (obj->as.basic.flags == 0) return; /* free cell */ - bits = GET_HEAP_BITMAP(ptr); - if (MARKED_IN_BITMAP(bits, ptr)) return; /* already marked */ - MARK_IN_BITMAP(bits, ptr); - objspace->heap.live_num++; + if (!gc_mark_ptr(objspace, ptr)) return; /* already marked */ marking: if (FL_TEST(obj, FL_EXIVAR)) { |