* gc.c (rgengc_rememberset_mark): call gc_mark_children() for
remembered objects directly instead of pushing on the mark stack. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
4223f00713
commit
7396fbb0b5
@ -1,3 +1,8 @@
|
||||
Sat Jun 22 05:08:03 2013 Koichi Sasada <ko1@atdot.net>
|
||||
|
||||
* gc.c (rgengc_rememberset_mark): call gc_mark_children() for
|
||||
remembered objects directly instead of pushing on the mark stack.
|
||||
|
||||
Sat Jun 22 04:48:53 2013 Koichi Sasada <ko1@atdot.net>
|
||||
|
||||
* include/ruby/ruby.h (OBJ_WRITE): cast to (VALUE *) for second
|
||||
|
5
gc.c
5
gc.c
@ -3720,10 +3720,11 @@ rgengc_rememberset_mark(rb_objspace_t *objspace)
|
||||
bitset = bits[j];
|
||||
do {
|
||||
if (bitset & 1) {
|
||||
gc_mark_ptr(objspace, (VALUE)p);
|
||||
push_mark_stack(&objspace->mark_stack, (VALUE) p);
|
||||
rgengc_report(2, objspace, "rgengc_rememberset_mark: mark %p (%s)\n", p, obj_type_name((VALUE)p));
|
||||
|
||||
gc_mark_ptr(objspace, (VALUE)p);
|
||||
gc_mark_children(objspace, (VALUE) p);
|
||||
|
||||
if (!RVALUE_SHADY(p)) {
|
||||
rgengc_report(2, objspace, "rgengc_rememberset_mark: clear %p (%s)\n", p, obj_type_name((VALUE)p));
|
||||
CLEAR_IN_BITMAP(bits, p);
|
||||
|
Loading…
x
Reference in New Issue
Block a user