* gc.c (init_heap): set default to heap slots length

if HEAP_OBJ_LIMIT is larger than HEAP_MIN_SLOTS. [Bug #1310]
  (set_heaps_increment): increment next_heaps_length if
  next_heaps_length and heaps_used are same.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nari 2009-03-23 05:58:15 +00:00
Родитель 2c772139b6
Коммит 5cb55eca6f
2 изменённых файлов: 16 добавлений и 0 удалений

Просмотреть файл

@ -1,3 +1,10 @@
Mon Mar 23 14:57:48 2009 Narihiro Nakamura <authorNari@gmail.com>
* gc.c (init_heap): set default to heap slots length
if HEAP_OBJ_LIMIT is larger than HEAP_MIN_SLOTS. [Bug #1310]
(set_heaps_increment): increment next_heaps_length if
next_heaps_length and heaps_used are same.
Mon Mar 23 14:32:23 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/win32.c (rb_w32_spawn): use original command if not found.

9
gc.c
Просмотреть файл

@ -922,6 +922,10 @@ init_heap(rb_objspace_t *objspace)
add = HEAP_MIN_SLOTS / HEAP_OBJ_LIMIT;
if (!add) {
add = 1;
}
if ((heaps_used + add) > heaps_length) {
allocate_heaps(objspace, heaps_used + add);
}
@ -938,6 +942,11 @@ static void
set_heaps_increment(rb_objspace_t *objspace)
{
size_t next_heaps_length = (size_t)(heaps_used * 1.8);
if (next_heaps_length == heaps_used) {
next_heaps_length++;
}
heaps_inc = next_heaps_length - heaps_used;
if (next_heaps_length > heaps_length) {