mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user