@@ -1642,11 +1642,13 @@ vm_setinstancevariable(const rb_iseq_t *iseq, VALUE obj, ID id, VALUE val, IVC i
16421642 attr_index_t index ;
16431643 vm_ic_atomic_shape_and_index (ic , & dest_shape_id , & index );
16441644
1645- VALUE pair = rb_ary_new_capa (2 );
1646- rb_ary_push (pair , rb_id2sym (id ));
1647- rb_ary_push (pair , val );
1645+ if ((ruby_vm_event_flags & RUBY_EVENT_IVAR_SET )) {
1646+ VALUE pair = rb_ary_new_capa (2 );
1647+ rb_ary_push (pair , rb_id2sym (id ));
1648+ rb_ary_push (pair , val );
16481649
1649- EXEC_EVENT_HOOK (GET_EC (), RUBY_EVENT_IVAR_SET , obj , id , 0 , 0 , pair );
1650+ EXEC_EVENT_HOOK (GET_EC (), RUBY_EVENT_IVAR_SET , obj , id , 0 , 0 , pair );
1651+ }
16501652
16511653 if (UNLIKELY (UNDEF_P (vm_setivar (obj , id , val , dest_shape_id , index )))) {
16521654 switch (BUILTIN_TYPE (obj )) {
@@ -4793,11 +4795,13 @@ vm_call_method_each_type(rb_execution_context_t *ec, rb_control_frame_t *cfp, st
47934795 !(ruby_vm_event_enabled_global_flags & RUBY_EVENT_IVAR_SET )));
47944796 }
47954797
4796- ID mid = vm_cc_cme (cc )-> def -> body .attr .id ;
4797- VALUE pair = rb_ary_new_capa (2 );
4798- rb_ary_push (pair , rb_id2sym (mid ));
4799- rb_ary_push (pair , v );
4800- EXEC_EVENT_HOOK (ec , RUBY_EVENT_IVAR_SET , calling -> recv , mid , mid , 0 , pair );
4798+ if (ruby_vm_event_flags & RUBY_EVENT_IVAR_SET ) {
4799+ ID mid = vm_cc_cme (cc )-> def -> body .attr .id ;
4800+ VALUE pair = rb_ary_new_capa (2 );
4801+ rb_ary_push (pair , rb_id2sym (mid ));
4802+ rb_ary_push (pair , v );
4803+ EXEC_EVENT_HOOK (ec , RUBY_EVENT_IVAR_SET , calling -> recv , mid , mid , 0 , pair );
4804+ }
48014805
48024806 return v ;
48034807
0 commit comments