Project

General

Profile

Bug #16383 » tracepoint-attr-16383.patch

jeremyevans0 (Jeremy Evans), 12/04/2019 12:42 AM

View differences:

vm_insnhelper.c
vm_call_ivar(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, struct rb_call_data *cd)
{
struct rb_call_cache *cc = &cd->cc;
VALUE ret;
RB_DEBUG_COUNTER_INC(ccf_ivar);
cfp->sp -= 1;
return vm_getivar(calling->recv, cc->me->def->body.attr.id, NULL, cc, TRUE);
EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_CALL, calling->recv, cc->me->def->body.attr.id, cd->ci.mid, cc->me->owner, Qundef);
ret = vm_getivar(calling->recv, cc->me->def->body.attr.id, NULL, cc, TRUE);
EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_RETURN, calling->recv, cc->me->def->body.attr.id, cd->ci.mid, cc->me->owner, ret);
return ret;
}
static VALUE
vm_call_attrset(rb_execution_context_t *ec, rb_control_frame_t *cfp, struct rb_calling_info *calling, struct rb_call_data *cd)
{
struct rb_call_cache *cc = &cd->cc;
VALUE ret;
RB_DEBUG_COUNTER_INC(ccf_attrset);
VALUE val = *(cfp->sp - 1);
cfp->sp -= 2;
return vm_setivar(calling->recv, cc->me->def->body.attr.id, val, NULL, cc, 1);
EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_CALL, calling->recv, cc->me->def->body.attr.id, cd->ci.mid, cc->me->owner, Qundef);
ret = vm_setivar(calling->recv, cc->me->def->body.attr.id, val, NULL, cc, 1);
EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_RETURN, calling->recv, cc->me->def->body.attr.id, cd->ci.mid, cc->me->owner, ret);
return ret;
}
static inline VALUE
(2-2/2)