Add note about `STACK_GROW_DIR_DETECTION`.

This commit is contained in:
Samuel Williams 2019-06-03 21:35:03 +12:00
parent 5c8061a9e2
commit a2adcd40df
No known key found for this signature in database
GPG Key ID: A0765423A44728FB
1 changed files with 8 additions and 0 deletions

8
gc.h
View File

@ -81,6 +81,14 @@ int ruby_get_stack_grow_direction(volatile VALUE *addr);
# define STACK_UPPER(x, a, b) (stack_growup_p(x) ? (a) : (b))
#endif
/*
STACK_GROW_DIR_DETECTION is used with STACK_DIR_UPPER.
On most normal systems, stacks grow from high address to lower address. In
this case, STACK_DIR_UPPER(a, b) will return (b), but on exotic systems where
the stack grows UP (from low address to high address), it will return (a).
*/
#if STACK_GROW_DIRECTION
#define STACK_GROW_DIR_DETECTION
#define STACK_DIR_UPPER(a,b) STACK_UPPER(0, (a), (b))