diff --git a/ChangeLog b/ChangeLog index 67d2acf336..8d6ee0cc91 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Mar 4 13:41:46 2008 Tanaka Akira + + * gc.c (add_heap): fix previous change. [ruby-dev:33988] + Tue Mar 4 10:21:03 2008 Nobuyoshi Nakada * gc.c (add_heap): use binary search to find the place to insert the diff --git a/gc.c b/gc.c index a1106abcc4..928c312bea 100644 --- a/gc.c +++ b/gc.c @@ -466,14 +466,15 @@ add_heap(void) } } + membase = p; if ((VALUE)p % sizeof(RVALUE) == 0) heap_slots += 1; else p = (RVALUE*)((VALUE)p + sizeof(RVALUE) - ((VALUE)p % sizeof(RVALUE))); if (hi < heaps_used) { - MEMMOVE(&heaps[hi+1], &heaps[hi], VALUE, heaps_used - hi); + MEMMOVE(&heaps[hi+1], &heaps[hi], struct heaps_slot, heaps_used - hi); } - heaps[hi].membase = p; + heaps[hi].membase = membase; heaps[hi].slot = p; heaps[hi].limit = heap_slots; pend = p + heap_slots;