diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | gc.c | 2 | ||||
-rw-r--r-- | gc.h | 2 | ||||
-rw-r--r-- | thread_pthread.c | 4 |
4 files changed, 14 insertions, 4 deletions
@@ -1,3 +1,13 @@ +Wed Apr 14 16:29:02 2010 Nobuyoshi Nakada <[email protected]> + + * gc.c (GET_STACK_BOUNDS): fixed macro argument names. a patch from + Satoshi Shiba <shiba AT rvm.jp> at [ruby-dev:40973]. + + * gc.h (ruby_get_stack_grow_direction): fixed prototype. + + * thread_pthread.c (get_stack, ruby_stack_overflowed_p): both side + should be same type. [Bug #3145] + Wed Apr 14 15:58:11 2010 Nobuyoshi Nakada <[email protected]> * string.c (rb_string_value_cstr): make NUL terminated if it is @@ -2099,7 +2099,7 @@ void rb_vm_mark(void *ptr); #elif STACK_GROW_DIRECTION > 0 #define GET_STACK_BOUNDS(start, end, appendix) (start = STACK_START, end = STACK_END+appendix) #else -#define GET_STACK_BOUNDS(stack_start, stack_end, appendix) \ +#define GET_STACK_BOUNDS(start, end, appendix) \ ((STACK_END < STACK_START) ? \ (start = STACK_END, end = STACK_START) : (start = STACK_START, end = STACK_END+appendix)) #endif @@ -66,7 +66,7 @@ rb_gc_debug_body(const char *mode, const char *msg, int st, void *ptr) # define STACK_UPPER(x, a, b) b #else RUBY_EXTERN int ruby_stack_grow_direction; -int ruby_get_stack_grow_direction(VALUE *addr); +int ruby_get_stack_grow_direction(volatile VALUE *addr); # define stack_growup_p(x) ( \ (ruby_stack_grow_direction ? \ ruby_stack_grow_direction : \ diff --git a/thread_pthread.c b/thread_pthread.c index 8cfc637735..e6295db3cb 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -221,7 +221,7 @@ get_stack(void **addr, size_t *size) # endif if (pthread_attr_getguardsize(&attr, &guard) == 0) { STACK_GROW_DIR_DETECTION; - STACK_DIR_UPPER((void)0, *addr = (char *)*addr + guard); + STACK_DIR_UPPER((void)0, (void)(*addr = (char *)*addr + guard)); *size -= guard; } # else @@ -850,7 +850,7 @@ ruby_stack_overflowed_p(const rb_thread_t *th, const void *addr) } #ifdef STACKADDR_AVAILABLE else if (get_stack(&base, &size) == 0) { - STACK_DIR_UPPER(base = (char *)base + size, (void)0); + STACK_DIR_UPPER((void)(base = (char *)base + size), (void)0); } #endif else { |