static int n_partial_gcs = 0;
if (GC_should_collect()) {
- if (GC_notify_event)
- GC_notify_event (GC_EVENT_START);
-
-
if (!GC_incremental) {
GC_gcollect_inner();
n_partial_gcs = 0;
GC_n_attempts++;
}
}
-
-
- if (GC_notify_event)
- GC_notify_event (GC_EVENT_END);
}
}
CLOCK_TYPE start_time, current_time;
# endif
if (GC_dont_gc) return FALSE;
+
+ if (GC_notify_event)
+ GC_notify_event (GC_EVENT_START);
+
if (GC_incremental && GC_collection_in_progress()) {
# ifdef CONDPRINT
if (GC_print_stats) {
MS_TIME_DIFF(current_time,start_time));
}
# endif
+ if (GC_notify_event)
+ GC_notify_event (GC_EVENT_END);
+
return(TRUE);
}
}
# endif
expansion_slop = WORDS_TO_BYTES(min_words_allocd()) + 4*MAXHINCR*HBLKSIZE;
- if (GC_last_heap_addr == 0 && !((word)space & SIGNB)
+ if ((GC_last_heap_addr == 0 && !((word)space & SIGNB))
|| (GC_last_heap_addr != 0 && GC_last_heap_addr < (ptr_t)space)) {
/* Assume the heap is growing up */
GC_greatest_plausible_heap_addr =