diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-12-31 15:14:37 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-12-31 15:14:37 +0900 |
| commit | b9e1b9b32852e2fb5836c1d4fd622a5a9a41119e (patch) | |
| tree | 7a0be15fff89343b2ab112268db3293c53bf071d | |
| parent | 566a8d3fcb9e17c463e63927084112532bc09c0d (diff) | |
| download | mruby-b9e1b9b32852e2fb5836c1d4fd622a5a9a41119e.tar.gz mruby-b9e1b9b32852e2fb5836c1d4fd622a5a9a41119e.zip | |
numeric.c: merge `mrb_as_float` implementation to `mrb_ensure_float_type`.
Since they are basically duplicated functionality. `mrb_as_float` is now
a macro defined using `mrb_ensure_float_type`; #5620
| -rw-r--r-- | include/mruby.h | 1 | ||||
| -rw-r--r-- | include/mruby/numeric.h | 1 | ||||
| -rw-r--r-- | src/numeric.c | 21 |
3 files changed, 1 insertions, 22 deletions
diff --git a/include/mruby.h b/include/mruby.h index 465c944fd..806ceaff6 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -1270,6 +1270,7 @@ MRB_API mrb_bool mrb_obj_equal(mrb_state *mrb, mrb_value a, mrb_value b); MRB_API mrb_bool mrb_equal(mrb_state *mrb, mrb_value obj1, mrb_value obj2); #ifndef MRB_NO_FLOAT MRB_API mrb_value mrb_ensure_float_type(mrb_state *mrb, mrb_value val); +#define mrb_as_float(mrb, x) mrb_float(mrb_ensure_float_type(mrb, x)) /* obsolete: use mrb_ensure_float_type() instead */ #define mrb_to_float(mrb, val) mrb_ensure_float_type(mrb, val) #endif diff --git a/include/mruby/numeric.h b/include/mruby/numeric.h index 4b14588ac..aec46413c 100644 --- a/include/mruby/numeric.h +++ b/include/mruby/numeric.h @@ -160,7 +160,6 @@ mrb_int_mul_overflow(mrb_int a, mrb_int b, mrb_int *c) # endif /* MRB_USE_FLOAT32 */ MRB_API mrb_value mrb_float_to_integer(mrb_state *mrb, mrb_value val); -MRB_API mrb_float mrb_as_float(mrb_state *mrb, mrb_value x); /* internal functions */ mrb_float mrb_div_float(mrb_float x, mrb_float y); diff --git a/src/numeric.c b/src/numeric.c index a3021b19e..fb3c0e48f 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -20,27 +20,6 @@ #endif #endif -#ifndef MRB_NO_FLOAT -MRB_API mrb_float -mrb_as_float(mrb_state *mrb, mrb_value val) -{ - switch (mrb_type(val)) { - case MRB_TT_INTEGER: - return (mrb_float)mrb_integer(val); - case MRB_TT_FLOAT: - break; - case MRB_TT_RATIONAL: - case MRB_TT_COMPLEX: - val = mrb_type_convert(mrb, val, MRB_TT_FLOAT, MRB_SYM(to_f)); - break; - default: - mrb_raise(mrb, E_TYPE_ERROR, "non float value"); - break; - } - return mrb_float(val); -} -#endif - static void int_overflow(mrb_state *mrb, const char *reason) { |
