summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
-rw-r--r--gc.c37
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));