g_assert (next_pin_slot <= pin_queue_size);
pin_staging_area_index = 0;
-
- printf ("%d\n", next_pin_slot);
}
static void
section->pin_queue_start = mono_sgen_find_optimized_pin_queue_area (section->data, section->end_data, §ion->pin_queue_num_entries);
DEBUG (6, fprintf (gc_debug_file, "Found %d pinning addresses in section %p\n", section->pin_queue_num_entries, section));
}
+
+static void
+mono_sgen_pin_queue_clear_discarded_entries (GCMemSection *section, int max_pin_slot)
+{
+ void **start = section->pin_queue_start + section->pin_queue_num_entries;
+ void **end = pin_queue + max_pin_slot;
+ void *addr;
+
+ for (; start < end; ++start) {
+ addr = *start;
+ if ((char*)addr < section->data || (char*)addr > section->end_data)
+ break;
+ *start = NULL;
+ }
+}