diff options
Diffstat (limited to 'libgc')
-rw-r--r-- | libgc/finalize.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/libgc/finalize.c b/libgc/finalize.c index fd133ae4b11..91f6970180c 100644 --- a/libgc/finalize.c +++ b/libgc/finalize.c @@ -386,7 +386,7 @@ static void GC_mark_togglerefs () if (!GC_toggleref_array) return; - GC_set_mark_bit (GC_toggleref_array); + GC_set_mark_bit ((GC_PTR)GC_toggleref_array); for (i = 0; i < GC_toggleref_array_size; ++i) { if (GC_toggleref_array [i].strong_ref) { GC_PTR object = GC_toggleref_array [i].strong_ref; @@ -424,7 +424,7 @@ ensure_toggleref_capacity (int capacity) { if (!GC_toggleref_array) { GC_toggleref_array_capacity = 32; - GC_toggleref_array = (GCToggleRef *) GC_INTERNAL_MALLOC (GC_toggleref_array_capacity * sizeof (GCToggleRef), NORMAL); + GC_toggleref_array = (GCToggleRef *) GC_INTERNAL_MALLOC_IGNORE_OFF_PAGE (GC_toggleref_array_capacity * sizeof (GCToggleRef), NORMAL); } if (GC_toggleref_array_size + capacity >= GC_toggleref_array_capacity) { GCToggleRef *tmp; @@ -432,10 +432,9 @@ ensure_toggleref_capacity (int capacity) while (GC_toggleref_array_capacity < GC_toggleref_array_size + capacity) GC_toggleref_array_capacity *= 2; - tmp = (GCToggleRef *) GC_INTERNAL_MALLOC (GC_toggleref_array_capacity * sizeof (GCToggleRef), NORMAL); + tmp = (GCToggleRef *) GC_INTERNAL_MALLOC_IGNORE_OFF_PAGE (GC_toggleref_array_capacity * sizeof (GCToggleRef), NORMAL); memcpy (tmp, GC_toggleref_array, GC_toggleref_array_size * sizeof (GCToggleRef)); - - GC_free((GC_PTR)GC_toggleref_array); + GC_INTERNAL_FREE (GC_toggleref_array); GC_toggleref_array = tmp; } } |