diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | vm_method.c | 10 |
2 files changed, 13 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Thu Jun 25 06:40:46 2015 Koichi Sasada <ko1@atdot.net> + + * vm_method.c (rb_method_definition_reset): need a WB for + VM_METHOD_TYPE_ATTRSET. + Thu Jun 25 03:33:21 2015 Koichi Sasada <ko1@atdot.net> * gc.c (RGENGC_OBJ_INFO, obj_info): add a macro to enable/disable diff --git a/vm_method.c b/vm_method.c index 735386e201..563ee6a18b 100644 --- a/vm_method.c +++ b/vm_method.c @@ -304,6 +304,7 @@ rb_method_definition_reset(const rb_method_entry_t *me, rb_method_definition_t * RB_OBJ_WRITTEN(me, Qundef, def->body.iseq.iseqptr->self); RB_OBJ_WRITTEN(me, Qundef, def->body.iseq.cref); break; + case VM_METHOD_TYPE_ATTRSET: case VM_METHOD_TYPE_IVAR: RB_OBJ_WRITTEN(me, Qundef, def->body.attr.location); break; @@ -316,8 +317,13 @@ rb_method_definition_reset(const rb_method_entry_t *me, rb_method_definition_t * case VM_METHOD_TYPE_ALIAS: RB_OBJ_WRITTEN(me, Qundef, def->body.alias.original_me); break; - default:; - /* ignore */ + case VM_METHOD_TYPE_CFUNC: + case VM_METHOD_TYPE_ZSUPER: + case VM_METHOD_TYPE_MISSING: + case VM_METHOD_TYPE_OPTIMIZED: + case VM_METHOD_TYPE_UNDEF: + case VM_METHOD_TYPE_NOTIMPLEMENTED: + break; } *(rb_method_definition_t **)&me->def = def; |