summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authortenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-17 06:16:35 +0000
committertenderlove <tenderlove@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-04-17 06:16:35 +0000
commit281a22a39864602938cd881265243a3bb60df792 (patch)
tree5d1c9d3002464078f2eac95fa4f1b9cc2b89eb41 /gc.c
parent7bd58a4e6d214b78645f0a15dcc691d3faaa1acf (diff)
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
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gc.c b/gc.c
index 2a466b9f47..72ab507d50 100644
--- a/gc.c
+++ b/gc.c
@@ -4981,19 +4981,19 @@ gc_mark_children(rb_objspace_t *objspace, VALUE obj)
case T_CLASS:
case T_MODULE:
mark_m_tbl(objspace, RCLASS_M_TBL(obj));
+ gc_mark(objspace, RCLASS_SUPER((VALUE)obj));
if (!RCLASS_EXT(obj)) break;
mark_tbl_no_pin(objspace, RCLASS_IV_TBL(obj));
mark_const_tbl(objspace, RCLASS_CONST_TBL(obj));
- gc_mark(objspace, RCLASS_SUPER((VALUE)obj));
break;
case T_ICLASS:
if (FL_TEST(obj, RICLASS_IS_ORIGIN)) {
mark_m_tbl(objspace, RCLASS_M_TBL(obj));
}
+ gc_mark(objspace, RCLASS_SUPER((VALUE)obj));
if (!RCLASS_EXT(obj)) break;
mark_m_tbl(objspace, RCLASS_CALLABLE_M_TBL(obj));
- gc_mark(objspace, RCLASS_SUPER((VALUE)obj));
break;
case T_ARRAY: