From ac88f85a9eb0d03707fc382cbaa442da146d9203 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 25 Jan 2017 11:09:15 +0900 Subject: Copy mrb_float values from pool when MRB_WORD_BOXING; ref #3396 --- src/vm.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/vm.c b/src/vm.c index 8c91ae1e7..9684dabfd 100644 --- a/src/vm.c +++ b/src/vm.c @@ -859,7 +859,15 @@ RETRY_TRY_BLOCK: CASE(OP_LOADL) { /* A Bx R(A) := Pool(Bx) */ +#ifdef MRB_WORD_BOXING + mrb_value val = pool[GETARG_Bx(i)]; + if (mrb_float_p(val)) { + val = mrb_float_value(mrb, mrb_float(val)); + } + regs[GETARG_A(i)] = val; +#else regs[GETARG_A(i)] = pool[GETARG_Bx(i)]; +#endif NEXT; } -- cgit v1.2.3