diff --git a/ChangeLog b/ChangeLog index 77ea2dfd7c..6b41742c93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Feb 27 18:01:20 2009 Nobuyoshi Nakada + + * gc.c (ruby_get_stack_grow_direction): no needs to use thread + here, and not initialized yet. [ruby-core:22439] + Fri Feb 27 17:45:25 2009 Nobuyoshi Nakada * file.c (file_load_ok): checks if regular file, except for the diff --git a/gc.c b/gc.c index ca24f82470..80cd62ee2d 100644 --- a/gc.c +++ b/gc.c @@ -1102,10 +1102,10 @@ int ruby_stack_grow_direction; int ruby_get_stack_grow_direction(VALUE *addr) { - rb_thread_t *th = GET_THREAD(); - SET_STACK_END; + VALUE *end; + SET_MACHINE_STACK_END(&end); - if (STACK_END > addr) return ruby_stack_grow_direction = 1; + if (end > addr) return ruby_stack_grow_direction = 1; return ruby_stack_grow_direction = -1; } #endif diff --git a/thread_pthread.c b/thread_pthread.c index cb9511e000..91c5b42d67 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -275,7 +275,7 @@ ruby_init_stack(VALUE *addr native_main_thread.stack_start = STACK_END_ADDRESS; #else if (!native_main_thread.stack_start || - STACK_UPPER(&addr, + STACK_UPPER((VALUE *)(void *)&addr, native_main_thread.stack_start > addr, native_main_thread.stack_start < addr)) { native_main_thread.stack_start = addr;