mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Super should be marked regardless of whether or not ext exists
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7bd58a4e6d
commit
281a22a398
1 changed files with 2 additions and 2 deletions
4
gc.c
4
gc.c
|
@ -4981,19 +4981,19 @@ gc_mark_children(rb_objspace_t *objspace, VALUE obj)
|
||||||
case T_CLASS:
|
case T_CLASS:
|
||||||
case T_MODULE:
|
case T_MODULE:
|
||||||
mark_m_tbl(objspace, RCLASS_M_TBL(obj));
|
mark_m_tbl(objspace, RCLASS_M_TBL(obj));
|
||||||
|
gc_mark(objspace, RCLASS_SUPER((VALUE)obj));
|
||||||
if (!RCLASS_EXT(obj)) break;
|
if (!RCLASS_EXT(obj)) break;
|
||||||
mark_tbl_no_pin(objspace, RCLASS_IV_TBL(obj));
|
mark_tbl_no_pin(objspace, RCLASS_IV_TBL(obj));
|
||||||
mark_const_tbl(objspace, RCLASS_CONST_TBL(obj));
|
mark_const_tbl(objspace, RCLASS_CONST_TBL(obj));
|
||||||
gc_mark(objspace, RCLASS_SUPER((VALUE)obj));
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_ICLASS:
|
case T_ICLASS:
|
||||||
if (FL_TEST(obj, RICLASS_IS_ORIGIN)) {
|
if (FL_TEST(obj, RICLASS_IS_ORIGIN)) {
|
||||||
mark_m_tbl(objspace, RCLASS_M_TBL(obj));
|
mark_m_tbl(objspace, RCLASS_M_TBL(obj));
|
||||||
}
|
}
|
||||||
|
gc_mark(objspace, RCLASS_SUPER((VALUE)obj));
|
||||||
if (!RCLASS_EXT(obj)) break;
|
if (!RCLASS_EXT(obj)) break;
|
||||||
mark_m_tbl(objspace, RCLASS_CALLABLE_M_TBL(obj));
|
mark_m_tbl(objspace, RCLASS_CALLABLE_M_TBL(obj));
|
||||||
gc_mark(objspace, RCLASS_SUPER((VALUE)obj));
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_ARRAY:
|
case T_ARRAY:
|
||||||
|
|
Loading…
Reference in a new issue