diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/etc.c | 4 | ||||
| -rw-r--r-- | src/numeric.c | 2 | ||||
| -rw-r--r-- | src/state.c | 2 |
3 files changed, 6 insertions, 2 deletions
@@ -161,7 +161,7 @@ mrb_word_boxing_float_value(mrb_state *mrb, mrb_float f) v.p = mrb_obj_alloc(mrb, MRB_TT_FLOAT, mrb->float_class); v.fp->f = f; MRB_SET_FROZEN_FLAG(v.bp); - return v.w; + return v.value; } #endif /* MRB_NO_FLOAT */ @@ -175,7 +175,7 @@ mrb_word_boxing_int_value(mrb_state *mrb, mrb_int n) v.p = mrb_obj_alloc(mrb, MRB_TT_INTEGER, mrb->integer_class); v.ip->i = n; MRB_SET_FROZEN_FLAG(v.ip); - return v.w; + return v.value; } } #endif /* MRB_WORD_BOXING */ diff --git a/src/numeric.c b/src/numeric.c index fcabc6d60..2c16b8a31 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -853,6 +853,8 @@ flo_round(mrb_state *mrb, mrb_value num) if (!isfinite(number)) return num; return mrb_float_value(mrb, number); } + if (!FIXABLE_FLOAT(number)) + return mrb_float_value(mrb, number); return mrb_int_value(mrb, (mrb_int)number); } diff --git a/src/state.c b/src/state.c index 1f85448a1..aef9605bc 100644 --- a/src/state.c +++ b/src/state.c @@ -77,11 +77,13 @@ mrb_open(void) return mrb; } +#ifndef DISABLE_GEMS static void init_mrbgems(mrb_state *mrb, void *opaque) { mrb_init_mrbgems(mrb); } +#endif MRB_API mrb_state* mrb_open_allocf(mrb_allocf f, void *ud) |
