diff options
| -rw-r--r-- | mrbgems/mruby-random/src/random.c | 4 | ||||
| -rw-r--r-- | src/vm.c | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/mrbgems/mruby-random/src/random.c b/mrbgems/mruby-random/src/random.c index ea063572e..0d71ce2df 100644 --- a/mrbgems/mruby-random/src/random.c +++ b/mrbgems/mruby-random/src/random.c @@ -30,12 +30,12 @@ static void mt_g_srand(unsigned long seed) init_genrand(seed); } -static unsigned long mt_g_rand() +static unsigned long mt_g_rand(void) { return genrand_int32(); } -static double mt_g_rand_real() +static double mt_g_rand_real(void) { return genrand_real1(); } @@ -7,6 +7,7 @@ #include <setjmp.h> #include <stddef.h> #include <stdarg.h> +#include <math.h> #include "mruby.h" #include "mruby/array.h" #include "mruby/class.h" @@ -1712,6 +1713,11 @@ mrb_context_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int default: goto L_SEND; } +#ifdef MRB_NAN_BOXING + if (isnan(regs[a].attr_f)) { + regs[a] = mrb_float_value(mrb, regs[a].attr_f); + } +#endif NEXT; } |
