diff options
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 9e85f38be9..ffab48419b 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -52,11 +52,11 @@ vm_stackoverflow(void) threadptr_stack_overflow(GET_THREAD(), TRUE); } -NORETURN(void rb_threadptr_stack_overflow(rb_thread_t *th)); +NORETURN(void rb_threadptr_stack_overflow(rb_thread_t *th, int crit)); void -rb_threadptr_stack_overflow(rb_thread_t *th) +rb_threadptr_stack_overflow(rb_thread_t *th, int crit) { - if (rb_during_gc()) { + if (crit || rb_during_gc()) { th->ec.raised_flag = RAISED_STACKOVERFLOW; th->ec.errinfo = th->vm->special_exceptions[ruby_error_stackfatal]; TH_JUMP_TAG(th, TAG_RAISE); |