* libdw/dwarf_getsrclines.c (read_srcfiles): Initialize dbg
        member.
        * libdw/libdwP.h (struct Dwarf_Files_s): Add Dwarf member.
        (struct Dwarf_Lines_s): Ditto.

Signed-off-by: Aaron Merey <ame...@redhat.com>
---
 libdw/dwarf_getsrclines.c | 4 ++++
 libdw/libdwP.h            | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c
index fb2c431b..6ae5abc7 100644
--- a/libdw/dwarf_getsrclines.c
+++ b/libdw/dwarf_getsrclines.c
@@ -717,6 +717,7 @@ read_srcfiles (Dwarf *dbg,
   if (unlikely (files == NULL))
     goto no_mem;
 
+  files->dbg = dbg;
   const char **dirs = (void *) &files->info[nfilelist];
 
   struct filelist *fileslist = filelist;
@@ -1197,6 +1198,8 @@ read_srclines (Dwarf *dbg,
                        + nnewfiles * sizeof (Dwarf_Fileinfo)
                        + (ndirs + 1) * sizeof (char *),
                        1);
+      newfiles->dbg = dbg;
+
       /* Copy prevfiles to newfiles.  */
       for (size_t n = 0; n < nprevfiles; n++)
        newfiles->info[n] = prevfiles->info[n];
@@ -1254,6 +1257,7 @@ read_srclines (Dwarf *dbg,
      The buffers overlap, so we've clobbered the early elements
      of SORTLINES by the time we're reading the later ones.  */
   Dwarf_Lines *lines = buf;
+  lines->dbg = dbg;
   lines->nlines = state.nlinelist;
   for (size_t i = 0; i < state.nlinelist; ++i)
     {
diff --git a/libdw/libdwP.h b/libdw/libdwP.h
index db5abeec..7655e3ec 100644
--- a/libdw/libdwP.h
+++ b/libdw/libdwP.h
@@ -304,6 +304,7 @@ struct Dwarf_Abbrev
 /* Files in line information records.  */
 struct Dwarf_Files_s
   {
+    Dwarf *dbg;
     unsigned int ndirs;
     unsigned int nfiles;
     struct Dwarf_Fileinfo_s
@@ -345,6 +346,7 @@ struct Dwarf_Line_s
 
 struct Dwarf_Lines_s
 {
+  Dwarf *dbg;
   size_t nlines;
   struct Dwarf_Line_s info[0];
 };
-- 
2.47.1

Reply via email to