From 2c012e01db6c80abb336ec27207b9f978b1f2da7 Mon Sep 17 00:00:00 2001 From: akr Date: Mon, 12 May 2008 03:30:34 +0000 Subject: * gc.c (assign_heap_slot): fix condition for number of objects in a heap. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ gc.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 8d8f4cfe7a..fc0045f9a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon May 12 12:27:55 2008 Tanaka Akira + + * gc.c (assign_heap_slot): fix condition for number of objects in + a heap. + Mon May 12 12:24:48 2008 Yukihiro Matsumoto * string.c (sym_to_i): really removed. [ruby-dev:34641] diff --git a/gc.c b/gc.c index 259b5cd673..655b1cd557 100644 --- a/gc.c +++ b/gc.c @@ -551,7 +551,7 @@ assign_heap_slot(rb_objspace_t *objspace) membase = p; if ((VALUE)p % sizeof(RVALUE) != 0) { p = (RVALUE*)((VALUE)p + sizeof(RVALUE) - ((VALUE)p % sizeof(RVALUE))); - if ((membase + HEAP_SIZE) < (p + HEAP_SIZE)) { + if ((HEAP_SIZE - HEAP_OBJ_LIMIT * sizeof(RVALUE)) < ((char*)p - (char*)membase)) { objs--; } } -- cgit v1.2.3