diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-08-20 16:52:33 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-08-20 16:52:33 +0000 |
commit | ff089f50a11a1196f18135b5ef012fc812fa17f8 (patch) | |
tree | 955b7a5c631a04485b704cc6421b1bdbe7a01f76 /gc.c | |
parent | 447e1c4d199181bc02935e00589c3cc2668a5e1e (diff) |
merge revision(s) r45542,r45543: [Backport #9717]
* gc.c (mark_current_machine_context): Call SET_STACK_END.
This reverts a hunk of r40703 by ko1.
This fixes [ruby-dev:48098] [Bug #9717].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@47229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -3478,6 +3478,10 @@ mark_current_machine_context(rb_objspace_t *objspace, rb_thread_t *th) /* This assumes that all registers are saved into the jmp_buf (and stack) */ rb_setjmp(save_regs_gc_mark.j); + /* SET_STACK_END must be called in this function because + * the stack frame of this function may contain + * callee save registers and they should be marked. */ + SET_STACK_END; GET_STACK_BOUNDS(stack_start, stack_end, 1); mark_locations_array(objspace, save_regs_gc_mark.v, numberof(save_regs_gc_mark.v)); |