Ignore:
Timestamp:
Jul 9, 2020, 8:51:43 AM (4 years ago)
Author:
coas-nagasima
Message:

mrubyを2.1.1に更新

Location:
EcnlProtoTool/trunk/mruby-2.1.1
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mruby-2.1.1/mrbgems/mruby-error/src/exception.c

    r331 r439  
    99  struct mrb_jmpbuf c_jmp;
    1010  mrb_value result = mrb_nil_value();
     11  int ai = mrb_gc_arena_save(mrb);
    1112
    1213  if (state) { *state = FALSE; }
     
    2324  } MRB_END_EXC(&c_jmp);
    2425
     26  mrb_gc_arena_restore(mrb, ai);
    2527  mrb_gc_protect(mrb, result);
    2628  return result;
     
    3335  struct mrb_jmpbuf c_jmp;
    3436  mrb_value result;
     37  int ai = mrb_gc_arena_save(mrb);
    3538
    3639  MRB_TRY(&c_jmp) {
     
    4043  } MRB_CATCH(&c_jmp) {
    4144    mrb->jmp = prev_jmp;
     45    mrb_gc_arena_restore(mrb, ai);
    4246    ensure(mrb, e_data);
    4347    MRB_THROW(mrb->jmp); /* rethrow catched exceptions */
    4448  } MRB_END_EXC(&c_jmp);
    4549
     50  mrb_gc_arena_restore(mrb, ai);
     51  mrb_gc_protect(mrb, result);
    4652  ensure(mrb, e_data);
     53  mrb_gc_arena_restore(mrb, ai);
    4754  mrb_gc_protect(mrb, result);
    4855  return result;
     
    6572  mrb_bool error_matched = FALSE;
    6673  mrb_int i;
     74  int ai = mrb_gc_arena_save(mrb);
    6775
    6876  MRB_TRY(&c_jmp) {
     
    8391
    8492    mrb->exc = NULL;
     93    mrb_gc_arena_restore(mrb, ai);
    8594    result = rescue(mrb, r_data);
    8695  } MRB_END_EXC(&c_jmp);
    8796
     97  mrb_gc_arena_restore(mrb, ai);
    8898  mrb_gc_protect(mrb, result);
    8999  return result;
Note: See TracChangeset for help on using the changeset viewer.