]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb/dwarf: add dwo_file::find_tus
authorSimon Marchi <simon.marchi@efficios.com>
Mon, 11 May 2026 15:40:29 +0000 (11:40 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Wed, 13 May 2026 15:46:00 +0000 (11:46 -0400)
Add this little helper to make finding a TU a bit simpler.  I always
find the STL way of doing things cryptic, so I think that hiding it in
small helper methods makes the code clearer.

A subsequent patch will add more uses of it

Change-Id: Ibfb20d0e44c65d2ff729f3e0980ec4435f223aef
Approved-By: Tom Tromey <tom@tromey.com>
gdb/dwarf2/dwo.h
gdb/dwarf2/read.c

index 025932b1e969d77a9dc8006f9725fb6df475a036..47d7bdde792508e7a4d4b7afcb091516c792c5ac 100644 (file)
@@ -121,6 +121,17 @@ struct dwo_file
   dwo_file () = default;
   DISABLE_COPY_AND_ASSIGN (dwo_file);
 
+  /* Look for a type unit with signature SIGNATURE in this dwo_file.
+
+     Return nullptr if not found.  */
+  dwo_unit *find_tu (ULONGEST signature) const
+  {
+    if (auto it = this->tus.find (signature); it != this->tus.end ())
+      return it->get ();
+
+    return nullptr;
+  }
+
   /* The DW_AT_GNU_dwo_name or DW_AT_dwo_name attribute.
      For virtual DWO files the name is constructed from the section offsets
      of abbrev,line,loc,str_offsets so that we combine virtual DWO files
index 4d797b0e29b91cc8c51b37a8601306074a18d641..9cb7b83cc339b7838f9733ed6d3ad6b1655088cf 100644 (file)
@@ -2311,12 +2311,10 @@ lookup_dwo_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
   /* Note: cu->dwo_unit is the dwo_unit that references this TU, not the
      dwo_unit of the TU itself.  */
   dwo_file *dwo_file = cu->dwo_unit->dwo_file;
-  auto it = dwo_file->tus.find (sig);
-  if (it == dwo_file->tus.end ())
+  dwo_unit *dwo_entry = dwo_file->find_tu (sig);
+  if (dwo_entry == nullptr)
     return nullptr;
 
-  dwo_unit *dwo_entry = it->get ();
-
   /* If the global table doesn't have an entry for this TU, add one.  */
   if (sig_type_it == per_bfd->signatured_types.end ())
     {