Bug #16383 » tracepoint-attr-16383.patch
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
|
- « Previous
- 1
- 2
- Next »