summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-pack/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-09-18 09:35:09 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-09-18 09:35:09 +0900
commit8b43754644660c9dcdc6b8b18a1917f01e77479e (patch)
treef4c70dc13272b0f18229bbd6bdb6786fd3af672c /mrbgems/mruby-pack/src
parente9b1d9dc2f1de290da4aadfd39f1957502d67e18 (diff)
downloadmruby-8b43754644660c9dcdc6b8b18a1917f01e77479e.tar.gz
mruby-8b43754644660c9dcdc6b8b18a1917f01e77479e.zip
Use `mrb_to_flo()` to check return value from `to_f`; fix #4115
The ISO standard does not include implicit type conversion using `to_int`, `to_str` and sometimes `to_f`. For the compactness of the mruby implementation, maybe we should remove those implicit conversion from mruby.
Diffstat (limited to 'mrbgems/mruby-pack/src')
-rw-r--r--mrbgems/mruby-pack/src/pack.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/mrbgems/mruby-pack/src/pack.c b/mrbgems/mruby-pack/src/pack.c
index 850462830..f970d9339 100644
--- a/mrbgems/mruby-pack/src/pack.c
+++ b/mrbgems/mruby-pack/src/pack.c
@@ -1127,7 +1127,8 @@ mrb_pack_pack(mrb_state *mrb, mrb_value ary)
#ifndef MRB_WITHOUT_FLOAT
} else if (type == PACK_TYPE_FLOAT) {
if (!mrb_float_p(o)) {
- o = mrb_funcall(mrb, o, "to_f", 0);
+ mrb_float f = mrb_to_flo(mrb, o);
+ o = mrb_float_value(mrb, f);
}
#endif
} else if (type == PACK_TYPE_STRING) {