* gc.c (rb_gc_mark_locations): get rid of underflow.
* gc.c (mark_current_machine_context): check if the main thread stack position may shink under the intialized position. [ruby-core:16436] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
38af102ccc
commit
6b5e24a61a
@ -1,3 +1,10 @@
|
|||||||
|
Fri Apr 18 17:37:48 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* gc.c (rb_gc_mark_locations): get rid of underflow.
|
||||||
|
|
||||||
|
* gc.c (mark_current_machine_context): check if the main thread stack
|
||||||
|
position may shink under the intialized position. [ruby-core:16436]
|
||||||
|
|
||||||
Thu Apr 17 22:20:52 2008 Yusuke Endoh <mame@tsg.ne.jp>
|
Thu Apr 17 22:20:52 2008 Yusuke Endoh <mame@tsg.ne.jp>
|
||||||
|
|
||||||
* enc/trans/utf_16_32.c (fun_so_to_utf_16be, fun_so_to_utf_16le): add
|
* enc/trans/utf_16_32.c (fun_so_to_utf_16be, fun_so_to_utf_16le): add
|
||||||
|
6
gc.c
6
gc.c
@ -794,6 +794,7 @@ rb_gc_mark_locations(VALUE *start, VALUE *end)
|
|||||||
{
|
{
|
||||||
long n;
|
long n;
|
||||||
|
|
||||||
|
if (end <= start) return;
|
||||||
n = end - start;
|
n = end - start;
|
||||||
mark_locations_array(start,n);
|
mark_locations_array(start,n);
|
||||||
}
|
}
|
||||||
@ -1491,10 +1492,9 @@ mark_current_machine_context(rb_thread_t *th)
|
|||||||
mark_locations_array((VALUE*)save_regs_gc_mark,
|
mark_locations_array((VALUE*)save_regs_gc_mark,
|
||||||
sizeof(save_regs_gc_mark) / sizeof(VALUE));
|
sizeof(save_regs_gc_mark) / sizeof(VALUE));
|
||||||
|
|
||||||
mark_locations_array(stack_start, stack_end - stack_start);
|
rb_gc_mark_locations(stack_start, stack_end);
|
||||||
#ifdef __ia64
|
#ifdef __ia64
|
||||||
mark_locations_array(th->machine_register_stack_start,
|
rb_gc_mark_locations(th->machine_register_stack_start, th->machine_register_stack_end);
|
||||||
th->machine_register_stack_end - th->machine_register_stack_start);
|
|
||||||
#endif
|
#endif
|
||||||
#if defined(__human68k__) || defined(__mc68000__)
|
#if defined(__human68k__) || defined(__mc68000__)
|
||||||
mark_locations_array((VALUE*)((char*)STACK_END + 2),
|
mark_locations_array((VALUE*)((char*)STACK_END + 2),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user