void mrb_exc_raise(mrb_state *mrb, mrb_value exc) { mrb->m_exc = exc.object_ptr(); exc_debug_info(mrb, mrb->m_exc); if (!mrb->jmp) { mrb_p(mrb, exc); abort(); } MRB_THROW(mrb->jmp); }
void mrb_exc_raise(mrb_state *mrb, mrb_value exc) { mrb->exc = mrb_obj_ptr(exc); exc_debug_info(mrb, mrb->exc); if (!mrb->jmp) { mrb_p(mrb, exc); abort(); } longjmp(*(jmp_buf*)mrb->jmp, 1); }
void mrb_exc_raise(mrb_state *mrb, mrb_value exc) { mrb->exc = (struct RObject*)mrb_object(exc); exc_debug_info(mrb, mrb->exc); if (!mrb->jmp) { #ifdef ENABLE_STDIO mrb_p(mrb, exc); #endif abort(); } longjmp(*(jmp_buf*)mrb->jmp, 1); }
MRB_API mrb_noreturn void mrb_exc_raise(mrb_state *mrb, mrb_value exc) { mrb->exc = mrb_obj_ptr(exc); if (!mrb->out_of_memory) { exc_debug_info(mrb, mrb->exc); } if (!mrb->jmp) { mrb_p(mrb, exc); abort(); } MRB_THROW(mrb->jmp); }
MRB_API mrb_noreturn void mrb_exc_raise(mrb_state *mrb, mrb_value exc) { mrb_exc_set(mrb, exc); if (!mrb->gc.out_of_memory) { exc_debug_info(mrb, mrb->exc); mrb_save_backtrace(mrb); } if (!mrb->jmp) { mrb_p(mrb, exc); abort(); } MRB_THROW(mrb->jmp); }