From 11c4d81539eca8198bc702a91c8607c06e04e61e Mon Sep 17 00:00:00 2001 From: Carson McDonald Date: Tue, 15 Oct 2013 07:33:41 -0400 Subject: Set regs to stack on return of const_get calls before use --- src/vm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/vm.c') diff --git a/src/vm.c b/src/vm.c index 9b673cd0f..1cb2a83e9 100644 --- a/src/vm.c +++ b/src/vm.c @@ -702,7 +702,9 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) CASE(OP_GETCONST) { /* A B R(A) := constget(Sym(B)) */ ERR_PC_HOOK(mrb, pc); - regs[GETARG_A(i)] = mrb_vm_const_get(mrb, syms[GETARG_Bx(i)]); + mrb_value val = mrb_vm_const_get(mrb, syms[GETARG_Bx(i)]); + regs = mrb->c->stack; + regs[GETARG_A(i)] = val; NEXT; } @@ -717,7 +719,9 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) int a = GETARG_A(i); ERR_PC_HOOK(mrb, pc); - regs[a] = mrb_const_get(mrb, regs[a], syms[GETARG_Bx(i)]); + mrb_value val = mrb_const_get(mrb, regs[a], syms[GETARG_Bx(i)]); + regs = mrb->c->stack; + regs[a] = val; NEXT; } -- cgit v1.2.3