/* let it grow dynamically. */
# endif
-STATIC word GC_n_rescuing_pages = 0;
+#if !defined(GC_DISABLE_INCREMENTAL) || defined(STUBBORN_ALLOC)
+ STATIC word GC_n_rescuing_pages = 0;
/* Number of dirty pages we marked from */
/* excludes ptrfree pages, etc. */
+ /* Used for logging only. */
+#endif
GC_INNER size_t GC_mark_stack_size = 0;
# ifdef CHECKSUMS
if (GC_dirty_maintained) GC_check_dirty();
# endif
- GC_n_rescuing_pages = 0;
+# if !defined(GC_DISABLE_INCREMENTAL) || defined(STUBBORN_ALLOC)
+ GC_n_rescuing_pages = 0;
+# endif
if (GC_mark_state == MS_NONE) {
GC_mark_state = MS_PUSH_RESCUERS;
} else if (GC_mark_state != MS_INVALID) {
} else {
scan_ptr = GC_push_next_marked_dirty(scan_ptr);
if (scan_ptr == 0) {
+# if !defined(GC_DISABLE_INCREMENTAL) \
+ || defined(STUBBORN_ALLOC)
GC_COND_LOG_PRINTF("Marked from %lu dirty pages\n",
(unsigned long)GC_n_rescuing_pages);
+# endif
GC_push_roots(FALSE, cold_gc_frame);
GC_objects_are_marked = TRUE;
if (GC_mark_state != MS_INVALID) {
/* Some quick shortcuts: */
if ((/* 0 | */ GC_DS_LENGTH) == descr) return;
if (GC_block_empty(hhdr)/* nothing marked */) return;
- GC_n_rescuing_pages++;
+# if !defined(GC_DISABLE_INCREMENTAL) || defined(STUBBORN_ALLOC)
+ GC_n_rescuing_pages++;
+# endif
GC_objects_are_marked = TRUE;
if (sz > MAXOBJBYTES) {
lim = h -> hb_body;
if ((/* 0 | */ GC_DS_LENGTH) == descr)
return;
- GC_n_rescuing_pages++;
+# if !defined(GC_DISABLE_INCREMENTAL) || defined(STUBBORN_ALLOC)
+ GC_n_rescuing_pages++;
+# endif
GC_objects_are_marked = TRUE;
if (sz > MAXOBJBYTES)
lim = h -> hb_body;