From 70624ae43d72b94c12e7fe717e0b9d5456bcadda Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Sat, 18 Sep 2021 16:15:24 +0900 Subject: Extract hook macro for attributes --- vm_eval.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) (limited to 'vm_eval.c') diff --git a/vm_eval.c b/vm_eval.c index ce2305cbd0..20d63db2b4 100644 --- a/vm_eval.c +++ b/vm_eval.c @@ -190,16 +190,9 @@ vm_call0_body(rb_execution_context_t *ec, struct rb_calling_info *calling, const } rb_check_arity(calling->argc, 1, 1); - if (UNLIKELY(ruby_vm_event_flags & (RUBY_EVENT_C_CALL | RUBY_EVENT_C_RETURN))) { - EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_CALL, calling->recv, - vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, Qundef); - ret = rb_ivar_set(calling->recv, vm_cc_cme(cc)->def->body.attr.id, argv[0]); - EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_RETURN, calling->recv, - vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, ret); - } - else { - ret = rb_ivar_set(calling->recv, vm_cc_cme(cc)->def->body.attr.id, argv[0]); - } + VM_CALL_METHOD_ATTR(ret, + rb_ivar_set(calling->recv, vm_cc_cme(cc)->def->body.attr.id, argv[0]), + (void)0); goto success; case VM_METHOD_TYPE_IVAR: if (calling->kw_splat && @@ -210,16 +203,9 @@ vm_call0_body(rb_execution_context_t *ec, struct rb_calling_info *calling, const } rb_check_arity(calling->argc, 0, 0); - if (UNLIKELY(ruby_vm_event_flags & (RUBY_EVENT_C_CALL | RUBY_EVENT_C_RETURN))) { - EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_CALL, calling->recv, - vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, Qundef); - ret = rb_attr_get(calling->recv, vm_cc_cme(cc)->def->body.attr.id); - EXEC_EVENT_HOOK(ec, RUBY_EVENT_C_RETURN, calling->recv, - vm_cc_cme(cc)->def->original_id, vm_ci_mid(ci), vm_cc_cme(cc)->owner, ret); - } - else { - ret = rb_attr_get(calling->recv, vm_cc_cme(cc)->def->body.attr.id); - } + VM_CALL_METHOD_ATTR(ret, + rb_attr_get(calling->recv, vm_cc_cme(cc)->def->body.attr.id), + (void)0); goto success; case VM_METHOD_TYPE_BMETHOD: ret = vm_call_bmethod_body(ec, calling, argv); -- cgit v1.2.1