summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-13 05:19:01 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-13 05:19:01 +0000
commit847786069403bce010d42e0da6f6b80223dd02b9 (patch)
treea70f9a04f63b014a08ff54acb19bd8d2829c1f86 /gc.c
parent97c8c1fa0e2770973c5911ef24708d13fb8a34b4 (diff)
* gc.c (ruby_stack_check): STACK_LENGTH should be less than
STACK_LEVEL_MAX. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17142 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/gc.c b/gc.c
index 25a2016c53..567dca1cf8 100644
--- a/gc.c
+++ b/gc.c
@@ -236,7 +236,6 @@ rb_objspace_alloc(void)
/*#define HEAP_SIZE 0x800 */
#define HEAP_OBJ_LIMIT (HEAP_SIZE / sizeof(struct RVALUE))
-#define FREE_MIN 4096
extern st_table *rb_class_tbl;
VALUE *rb_gc_stack_start = 0;
@@ -818,11 +817,11 @@ ruby_stack_check(void)
int ret;
rb_thread_t *th = GET_THREAD();
SET_STACK_END;
- ret = STACK_LENGTH > STACK_LEVEL_MAX + GC_WATER_MARK;
+ ret = STACK_LENGTH > STACK_LEVEL_MAX - GC_WATER_MARK;
#ifdef __ia64
if (!ret) {
ret = (VALUE*)rb_ia64_bsp() - th->machine_register_stack_start >
- th->machine_register_stack_maxsize/sizeof(VALUE) + GC_WATER_MARK;
+ th->machine_register_stack_maxsize/sizeof(VALUE) - GC_WATER_MARK;
}
#endif
return ret;