Bug #17648 ยป ruby-longjmp_wrapper_for_builtin.patch
| eval_intern.h | ||
|---|---|---|
|
return state;
|
||
|
}
|
||
|
#ifndef RUBY_JMP_BUF
|
||
|
NOINLINE(NORETURN(static void ruby_longjmp_wrapper_for_builtin(rb_jmpbuf_t env)));
|
||
|
static void
|
||
|
ruby_longjmp_wrapper_for_builtin(rb_jmpbuf_t env)
|
||
|
{
|
||
|
ruby_longjmp(env, 1);
|
||
|
}
|
||
|
#endif
|
||
|
NORETURN(static inline void rb_ec_tag_jump(const rb_execution_context_t *ec, enum ruby_tag_type st));
|
||
|
static inline void
|
||
|
rb_ec_tag_jump(const rb_execution_context_t *ec, enum ruby_tag_type st)
|
||
|
{
|
||
|
ec->tag->state = st;
|
||
|
#ifdef RUBY_JMP_BUF
|
||
|
ruby_longjmp(ec->tag->buf, 1);
|
||
|
#else
|
||
|
ruby_longjmp_wrapper_for_builtin(ec->tag->buf);
|
||
|
#endif
|
||
|
}
|
||
|
/*
|
||