From 1f5f8a187adb746b01cc95c3f29a0a355f513374 Mon Sep 17 00:00:00 2001 From: Jeremy Evans Date: Thu, 30 Sep 2021 13:18:14 -0900 Subject: Make Array#min/max optimization respect refined methods Pass in ec to vm_opt_newarray_{max,min}. Avoids having to call GET_EC inside the functions, for better performance. While here, add a test for Array#min/max being redefined to test_optimization.rb. Fixes [Bug #18180] --- insns.def | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'insns.def') diff --git a/insns.def b/insns.def index cf09809ba1..43690be52e 100644 --- a/insns.def +++ b/insns.def @@ -834,7 +834,7 @@ opt_newarray_max // attr bool leaf = false; /* has rb_funcall() */ // attr rb_snum_t sp_inc = 1 - (rb_snum_t)num; { - val = vm_opt_newarray_max(num, STACK_ADDR_FROM_TOP(num)); + val = vm_opt_newarray_max(ec, num, STACK_ADDR_FROM_TOP(num)); } DEFINE_INSN @@ -846,7 +846,7 @@ opt_newarray_min // attr bool leaf = false; /* has rb_funcall() */ // attr rb_snum_t sp_inc = 1 - (rb_snum_t)num; { - val = vm_opt_newarray_min(num, STACK_ADDR_FROM_TOP(num)); + val = vm_opt_newarray_min(ec, num, STACK_ADDR_FROM_TOP(num)); } /* super(args) # args.size => num */ -- cgit v1.2.3