From 99c9cc6194f5dae32bca4f8146a94520542104f7 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 14 Jun 2008 02:59:19 +0000 Subject: * gc.h (STACK_UPPER): moved from gc.c * thread.c, thread_{pthread,win32}.c (ruby_init_stack, ruby_thread_init_stack): moved stack initialization from gc.c. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- gc.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'gc.h') diff --git a/gc.h b/gc.h index fe2e07ded..29fd6b407 100644 --- a/gc.h +++ b/gc.h @@ -57,5 +57,19 @@ rb_gc_debug_body(char *mode, char *msg, int st, void *ptr) #define RUBY_MARK_UNLESS_NULL(ptr) if(RTEST(ptr)){rb_gc_mark(ptr);} #define RUBY_FREE_UNLESS_NULL(ptr) if(ptr){ruby_xfree(ptr);} -#endif /* RUBY_GC_H */ +#if STACK_GROW_DIRECTION > 0 +# define STACK_UPPER(x, a, b) a +#elif STACK_GROW_DIRECTION < 0 +# define STACK_UPPER(x, a, b) b +#else +RUBY_EXTERN int ruby_stack_grow_direction; +int ruby_get_stack_grow_direction(VALUE *addr); +# define stack_growup_p(x) ( \ + (ruby_stack_grow_direction ? \ + ruby_stack_grow_direction : \ + ruby_get_stack_grow_direction(x)) > 0) +# define STACK_UPPER(x, a, b) (stack_growup_p(x) ? a : b) +#endif + +#endif /* RUBY_GC_H */ -- cgit