From f709847bde5f0bb3e34866a4f748a8b43b378a93 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 27 Jun 2024 10:02:06 +0900 Subject: [PATCH] numeric.c (cmpnum): skip mrb_as_float() if possible --- src/numeric.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/numeric.c b/src/numeric.c index f67ce3339..c0482d0d3 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -1922,8 +1922,13 @@ cmpnum(mrb_state *mrb, mrb_value v1, mrb_value v2) #ifdef MRB_USE_BIGINT case MRB_TT_BIGINT: #endif - case MRB_TT_FLOAT: case MRB_TT_INTEGER: + if (mrb_fixnum_p(v2)) { + y = (mrb_float)mrb_integer(v2); + break; + } + /* fall through */ + case MRB_TT_FLOAT: y = mrb_as_float(mrb, v2); break; default: