summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-07-06 09:05:46 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-07-06 09:05:46 +0900
commit91868286bebb28de3e85f9ee36905cf626e580d3 (patch)
tree84aa6f88d57c7dae51e8cfa65deafbfa83c469af /include
parentcc04f033935c167aaf7013201aa25d82fe762d1c (diff)
downloadmruby-91868286bebb28de3e85f9ee36905cf626e580d3.tar.gz
mruby-91868286bebb28de3e85f9ee36905cf626e580d3.zip
`FIXABLE_FLOAT()` fails sometimes in `MRB_INT64` environment.
Diffstat (limited to 'include')
-rw-r--r--include/mruby/numeric.h12
1 files changed, 3 insertions, 9 deletions
diff --git a/include/mruby/numeric.h b/include/mruby/numeric.h
index 5b0814fa3..a83452d76 100644
--- a/include/mruby/numeric.h
+++ b/include/mruby/numeric.h
@@ -16,15 +16,9 @@
*/
MRB_BEGIN_DECL
-#define POSFIXABLE(f) ((f) <= MRB_INT_MAX)
-#define NEGFIXABLE(f) ((f) >= MRB_INT_MIN)
-#define FIXABLE(f) (POSFIXABLE(f) && NEGFIXABLE(f))
-
-#ifdef MRB_INT64
-#define FIXABLE_FLOAT(f) FIXABLE((mrb_int)(f))
-#else
-#define FIXABLE_FLOAT(f) FIXABLE(f)
-#endif
+#define TYPED_FIXABLE(f,t) (((f) <= (t)MRB_INT_MAX) && ((f) >= (t)MRB_INT_MIN))
+#define FIXABLE(f) TYPED_FIXABLE(f,mrb_int)
+#define FIXABLE_FLOAT(f) TYPED_FIXABLE(f,double)
MRB_API mrb_value mrb_flo_to_fixnum(mrb_state *mrb, mrb_value val);
MRB_API mrb_value mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, int base);