diff options
-rw-r--r-- | gc.c | 37 |
1 files changed, 35 insertions, 2 deletions
@@ -19,6 +19,7 @@ #include "eval_intern.h" #include "vm_core.h" #include "gc.h" #include <stdio.h> #include <setjmp.h> #include <sys/types.h> @@ -1504,6 +1505,38 @@ rb_free_m_table(st_table *tbl) st_free_table(tbl); } void rb_mark_tbl(st_table *tbl) { @@ -1718,7 +1751,7 @@ gc_mark_children(rb_objspace_t *objspace, VALUE ptr, int lev) case T_MODULE: mark_m_tbl(objspace, RCLASS_M_TBL(obj), lev); mark_tbl(objspace, RCLASS_IV_TBL(obj), lev); - mark_tbl(objspace, RCLASS_CONST_TBL(obj), lev); ptr = RCLASS_SUPER(obj); goto again; @@ -2181,7 +2214,7 @@ obj_free(rb_objspace_t *objspace, VALUE obj) st_free_table(RCLASS_IV_TBL(obj)); } if (RCLASS_CONST_TBL(obj)) { - st_free_table(RCLASS_CONST_TBL(obj)); } if (RCLASS_IV_INDEX_TBL(obj)) { st_free_table(RCLASS_IV_INDEX_TBL(obj)); |