diff options
Diffstat (limited to 'signal.c')
-rw-r--r-- | signal.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -838,13 +838,13 @@ check_stack_overflow(int sig, const uintptr_t addr, const ucontext_t *ctx) * the fault page can be the next. */ if (sp_page == fault_page || sp_page == fault_page + 1 || sp_page <= fault_page && fault_page <= bp_page) { - rb_thread_t *th = ruby_current_thread; + rb_thread_t *th = ruby_current_thread(); int crit = FALSE; - if ((uintptr_t)th->ec.tag->buf / pagesize <= fault_page + 1) { + if ((uintptr_t)th->ec->tag->buf / pagesize <= fault_page + 1) { /* drop the last tag if it is close to the fault, * otherwise it can cause stack overflow again at the same * place. */ - th->ec.tag = th->ec.tag->prev; + th->ec->tag = th->ec->tag->prev; crit = TRUE; } reset_sigmask(sig); @@ -856,7 +856,7 @@ static void check_stack_overflow(int sig, const void *addr) { int ruby_stack_overflowed_p(const rb_thread_t *, const void *); - rb_thread_t *th = ruby_current_thread; + rb_thread_t *th = GET_THREAD(); if (ruby_stack_overflowed_p(th, addr)) { reset_sigmask(sig); rb_threadptr_stack_overflow(th, FALSE); |