diff options
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index e9dc27139a..8cd9295d66 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -24,12 +24,18 @@ static rb_control_frame_t *vm_get_ruby_level_caller_cfp(rb_thread_t *th, rb_control_frame_t *cfp); -static void -vm_stackoverflow(void) +VALUE +ruby_vm_sysstack_error_copy(void) { VALUE e = rb_obj_alloc(rb_eSysStackError); rb_obj_copy_ivar(e, sysstack_error); - rb_exc_raise(e); + return e; +} + +static void +vm_stackoverflow(void) +{ + rb_exc_raise(ruby_vm_sysstack_error_copy()); } static inline rb_control_frame_t * |