diff --git a/src/pdumper.c b/src/pdumper.c index f635cd7b7c8..a296329de74 100644 --- a/src/pdumper.c +++ b/src/pdumper.c @@ -5399,19 +5399,22 @@ dump_find_relocation (const struct dump_table_locator *const table, return found; } +#ifdef HAVE_MPS void -dump_visit_object_starts (dump_visit_fn fn) +dump_visit_igc_objects (dump_visit_fn fn, void *closure) { - const struct dump_table_locator *table = &dump_private.header.object_starts; + const struct dump_table_locator *table + = &dump_private.header.igc_object_starts; const struct dump_reloc *const relocs = dump_ptr (dump_public.start, table->offset); for (dump_off i = 0; i < table->nr_entries; ++i) { void *start = dump_ptr (dump_public.start, dump_reloc_get_offset (relocs[i])); - fn (start); + fn (start, closure); } } +# endif bool dump_loaded_p (void) diff --git a/src/pdumper.h b/src/pdumper.h index ccd287720cd..d87f364d5fe 100644 --- a/src/pdumper.h +++ b/src/pdumper.h @@ -278,14 +278,14 @@ void init_pdumper_once (void); void syms_of_pdumper (void); bool dump_loaded_p (void); -typedef void (* dump_visit_fn) (void *start); -extern void dump_visit_object_starts (dump_visit_fn fn); +typedef void (* dump_visit_fn) (void *start, void *closure); +extern void dump_visit_igc_objects (dump_visit_fn fn, void *closure); INLINE void -pdumper_visit_object_starts (dump_visit_fn fn) +pdumper_visit_object_starts (dump_visit_fn fn, void *closure) { -#ifdef HAVE_PDUMPER - dump_visit_object_starts (fn); +#if defined HAVE_PDUMPER && defined HAVE_MPS + dump_visit_igc_objects (fn, closure); #endif }