diff options
Diffstat (limited to 'imemo.c')
-rw-r--r-- | imemo.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -130,7 +130,7 @@ rb_imemo_memsize(VALUE obj) size_t size = 0; switch (imemo_type(obj)) { case imemo_ast: - size += rb_ast_memsize((rb_ast_t *)obj); + rb_bug("imemo_ast is obsolete"); break; case imemo_callcache: @@ -196,7 +196,6 @@ cc_table_mark_i(ID id, VALUE ccs_ptr, void *data) VM_ASSERT((VALUE)data == ccs->entries[i].cc->klass); VM_ASSERT(vm_cc_check_cme(ccs->entries[i].cc, ccs->cme)); - rb_gc_mark_movable((VALUE)ccs->entries[i].ci); rb_gc_mark_movable((VALUE)ccs->entries[i].cc); } return ID_TABLE_CONTINUE; @@ -274,7 +273,7 @@ rb_imemo_mark_and_move(VALUE obj, bool reference_updating) { switch (imemo_type(obj)) { case imemo_ast: - // TODO: Make AST decoupled from IMEMO + rb_bug("imemo_ast is obsolete"); break; case imemo_callcache: { @@ -358,7 +357,9 @@ rb_imemo_mark_and_move(VALUE obj, bool reference_updating) ((VALUE *)env->ep)[VM_ENV_DATA_INDEX_ENV] = rb_gc_location(env->ep[VM_ENV_DATA_INDEX_ENV]); } else { - VM_ENV_FLAGS_SET(env->ep, VM_ENV_FLAG_WB_REQUIRED); + if (!VM_ENV_FLAGS(env->ep, VM_ENV_FLAG_WB_REQUIRED)) { + VM_ENV_FLAGS_SET(env->ep, VM_ENV_FLAG_WB_REQUIRED); + } rb_gc_mark_movable( (VALUE)rb_vm_env_prev_env(env)); } } @@ -514,8 +515,7 @@ rb_imemo_free(VALUE obj) { switch (imemo_type(obj)) { case imemo_ast: - rb_ast_free((rb_ast_t *)obj); - RB_DEBUG_COUNTER_INC(obj_imemo_ast); + rb_bug("imemo_ast is obsolete"); break; case imemo_callcache: |