diff --git a/ChangeLog b/ChangeLog index 77b3b79cd8..3d51815198 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Apr 10 07:36:13 2010 wanabe + + * vm_method.c (rb_add_method): clear attr.location before rb_ary_new3. + a patch from Masaya TARUI in [Bug #3108] + Sat Apr 10 05:27:26 2010 Aaron Patterson * ext/psych/lib/psych/deprecated.rb: implementing Psych.quick_emit and diff --git a/vm_method.c b/vm_method.c index cccd02c088..027042b79c 100644 --- a/vm_method.c +++ b/vm_method.c @@ -280,13 +280,12 @@ rb_add_method(VALUE klass, ID mid, rb_method_type_t type, void *opts, rb_method_ case VM_METHOD_TYPE_ATTRSET: case VM_METHOD_TYPE_IVAR: def->body.attr.id = (ID)opts; + def->body.attr.location = Qfalse; th = GET_THREAD(); cfp = rb_vm_get_ruby_level_next_cfp(th, th->cfp); if (cfp && (line = rb_vm_get_sourceline(cfp))) { VALUE location = rb_ary_new3(2, cfp->iseq->filename, INT2FIX(line)); def->body.attr.location = rb_ary_freeze(location); - } else { - def->body.attr.location = Qfalse; } break; case VM_METHOD_TYPE_BMETHOD: