Fix RBreak exceeding 6 words on 32-bit mode w/o boxing and MRB_USE_FLOAT

ref: https://github.com/mruby/mruby/pull/4483#issuecomment-498001736

In this configuration, `tt` of `RBreak::val` is set into `RBreak::flags`.
This commit is contained in:
KOBAYASHI Shuji
2019-08-23 22:13:02 +09:00
parent 14d5a86b29
commit be78b5d8f7
3 changed files with 41 additions and 11 deletions
+4 -4
View File
@@ -836,8 +836,8 @@ break_new(mrb_state *mrb, struct RProc *p, mrb_value val)
struct RBreak *brk;
brk = (struct RBreak*)mrb_obj_alloc(mrb, MRB_TT_BREAK, NULL);
brk->proc = p;
brk->val = val;
mrb_break_proc_set(brk, p);
mrb_break_value_set(brk, val);
return brk;
}
@@ -2100,8 +2100,8 @@ RETRY_TRY_BLOCK:
}
if (FALSE) {
L_BREAK:
v = ((struct RBreak*)mrb->exc)->val;
proc = ((struct RBreak*)mrb->exc)->proc;
v = mrb_break_value_get((struct RBreak*)mrb->exc);
proc = mrb_break_proc_get((struct RBreak*)mrb->exc);
mrb->exc = NULL;
ci = mrb->c->ci;
}