`FIXABLE_FLOAT()` fails sometimes in `MRB_INT64` environment.

parent cc04f033
......@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment