From 75c8ffddf5dd9fda55606136198f0a061191b324 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 20 Jun 2023 06:45:05 +0900 Subject: [PATCH] object.c (mrb_equal) move mrb_equal() back to object.c --- src/kernel.c | 29 ----------------------------- src/object.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/kernel.c b/src/kernel.c index 39282b845..049114ed3 100644 --- a/src/kernel.c +++ b/src/kernel.c @@ -61,35 +61,6 @@ mrb_obj_inspect(mrb_state *mrb, mrb_value obj) return mrb_any_to_s(mrb, obj); } -MRB_API mrb_bool -mrb_equal(mrb_state *mrb, mrb_value obj1, mrb_value obj2) -{ - if (mrb_obj_eq(mrb, obj1, obj2)) return TRUE; -#ifndef MRB_NO_FLOAT - /* value mixing with integer and float */ - else if (mrb_integer_p(obj1) && mrb_float_p(obj2)) { - if ((mrb_float)mrb_integer(obj1) == mrb_float(obj2)) - return TRUE; - } - else if (mrb_float_p(obj1) && mrb_integer_p(obj2)) { - if (mrb_float(obj1) == (mrb_float)mrb_integer(obj2)) - return TRUE; - } -#endif -#ifdef MRB_USE_BIGINT - else if (mrb_bigint_p(obj1) && - (mrb_integer_p(obj2) || mrb_bigint_p(obj2) || mrb_float_p(obj2))) { - if (mrb_bint_cmp(mrb, obj1, obj2) == 0) - return TRUE; - } -#endif - else if (!mrb_func_basic_p(mrb, obj1, MRB_OPSYM(eq), mrb_obj_equal_m)) { - mrb_value result = mrb_funcall_argv(mrb, obj1, MRB_OPSYM(eq), 1, &obj2); - if (mrb_test(result)) return TRUE; - } - return FALSE; -} - /* 15.3.1.3.2 */ /* * call-seq: diff --git a/src/object.c b/src/object.c index 61357175e..91e4a881d 100644 --- a/src/object.c +++ b/src/object.c @@ -50,6 +50,35 @@ mrb_obj_equal(mrb_state *mrb, mrb_value v1, mrb_value v2) return mrb_obj_eq(mrb, v1, v2); } +MRB_API mrb_bool +mrb_equal(mrb_state *mrb, mrb_value obj1, mrb_value obj2) +{ + if (mrb_obj_eq(mrb, obj1, obj2)) return TRUE; +#ifndef MRB_NO_FLOAT + /* value mixing with integer and float */ + else if (mrb_integer_p(obj1) && mrb_float_p(obj2)) { + if ((mrb_float)mrb_integer(obj1) == mrb_float(obj2)) + return TRUE; + } + else if (mrb_float_p(obj1) && mrb_integer_p(obj2)) { + if (mrb_float(obj1) == (mrb_float)mrb_integer(obj2)) + return TRUE; + } +#endif +#ifdef MRB_USE_BIGINT + else if (mrb_bigint_p(obj1) && + (mrb_integer_p(obj2) || mrb_bigint_p(obj2) || mrb_float_p(obj2))) { + if (mrb_bint_cmp(mrb, obj1, obj2) == 0) + return TRUE; + } +#endif + else if (!mrb_func_basic_p(mrb, obj1, MRB_OPSYM(eq), mrb_obj_equal_m)) { + mrb_value result = mrb_funcall_argv(mrb, obj1, MRB_OPSYM(eq), 1, &obj2); + if (mrb_test(result)) return TRUE; + } + return FALSE; +} + /* * Document-class: NilClass *