summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-12-29 16:58:05 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-12-29 16:58:05 +0900
commit77f4a8b669043fa8459201d79a1adda3a47a691c (patch)
tree663e7e685725537a79bc205f58acd14609c13109
parent66a099b1b3084d0f591ad9b5b8bf614ca17a30b2 (diff)
downloadmruby-77f4a8b669043fa8459201d79a1adda3a47a691c.tar.gz
mruby-77f4a8b669043fa8459201d79a1adda3a47a691c.zip
object.c: move string to float conversion to `mrb_f_float`.
-rw-r--r--mrbgems/mruby-kernel-ext/src/kernel.c3
-rw-r--r--src/object.c3
2 files changed, 3 insertions, 3 deletions
diff --git a/mrbgems/mruby-kernel-ext/src/kernel.c b/mrbgems/mruby-kernel-ext/src/kernel.c
index 5b3dd6b35..976615f6e 100644
--- a/mrbgems/mruby-kernel-ext/src/kernel.c
+++ b/mrbgems/mruby-kernel-ext/src/kernel.c
@@ -187,6 +187,9 @@ mrb_f_float(mrb_state *mrb, mrb_value self)
{
mrb_value arg = mrb_get_arg1(mrb);
+ if (mrb_string_p(arg)) {
+ return mrb_float_value(mrb, mrb_str_to_dbl(mrb, arg, TRUE));
+ }
return mrb_to_float(mrb, arg);
}
#endif
diff --git a/src/object.c b/src/object.c
index 2b0c4e11f..464bfc396 100644
--- a/src/object.c
+++ b/src/object.c
@@ -512,9 +512,6 @@ mrb_ensure_float_type(mrb_state *mrb, mrb_value val)
case MRB_TT_FLOAT:
return val;
- case MRB_TT_STRING:
- return mrb_float_value(mrb, mrb_str_to_dbl(mrb, val, TRUE));
-
default:
mrb_raisef(mrb, E_TYPE_ERROR, "%Y cannot be converted to Float", val);
/* not reached */