1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 21:20:45 -08:00

Visit dumnped igc objects with closure

This commit is contained in:
Gerd Möllmann 2024-05-14 07:47:47 +02:00
parent 496f647b7d
commit 6455d3be17
2 changed files with 11 additions and 8 deletions

View file

@ -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)

View file

@ -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
}