emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scratch/igc 2cba24d3fb3 12/18: pdumper_visit_object_starts


From: Gerd Moellmann
Subject: scratch/igc 2cba24d3fb3 12/18: pdumper_visit_object_starts
Date: Tue, 14 May 2024 04:02:09 -0400 (EDT)

branch: scratch/igc
commit 2cba24d3fb372081ee7133aabf8614b57ff36bdb
Author: Gerd Möllmann <gerd@gnu.org>
Commit: Gerd Möllmann <gerd@gnu.org>

    pdumper_visit_object_starts
---
 src/pdumper.c | 14 ++++++++++++++
 src/pdumper.h | 12 ++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/src/pdumper.c b/src/pdumper.c
index f83f4e36e81..358529297f9 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -5365,6 +5365,20 @@ dump_find_relocation (const struct dump_table_locator 
*const table,
   return found;
 }
 
+void
+dump_visit_object_starts (dump_visit_fn fn)
+{
+  const struct dump_table_locator *table = &dump_private.header.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);
+    }
+}
+
 bool
 dump_loaded_p (void)
 {
diff --git a/src/pdumper.h b/src/pdumper.h
index 80bb72af01a..ccd287720cd 100644
--- a/src/pdumper.h
+++ b/src/pdumper.h
@@ -278,5 +278,17 @@ 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);
+
+INLINE void
+pdumper_visit_object_starts (dump_visit_fn fn)
+{
+#ifdef HAVE_PDUMPER
+  dump_visit_object_starts (fn);
+#endif
+}
+
+
 INLINE_HEADER_END
 #endif



reply via email to

[Prev in Thread] Current Thread [Next in Thread]