This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/5] dwarf2read.c: Some C++fycation, use std::vector, std::unique_ptr


-/* Add an entry to LH's include directory table.  */
-
-static void
-add_include_dir (struct line_header *lh, const char *include_dir)
+void
+line_header::add_include_dir (const char *include_dir)
 {
   if (dwarf_line_debug >= 2)
     fprintf_unfiltered (gdb_stdlog, "Adding dir %u: %s\n",
-			lh->num_include_dirs + 1, include_dir);
+			(unsigned) include_dirs.size () + 1, include_dir);

Can you use %zu for these?

@@ -17952,11 +17890,22 @@ dwarf_decode_line_header (unsigned int
offset, struct dwarf2_cu *cu)
   if (lh->version >= 5)
     {
       /* Read directory table.  */
-      read_formatted_entries (abfd, &line_ptr, lh, &cu->header,
-			      add_include_dir_stub);
+      read_formatted_entries (abfd, &line_ptr, lh.get (), &cu->header,
+			      [] (struct line_header *lh, const char *name,
+				  unsigned int dir_index, unsigned int mod_time,
+				  unsigned int length)
+	{
+	  lh->add_include_dir (name);
+	});

       /* Read file name table.  */
- read_formatted_entries (abfd, &line_ptr, lh, &cu->header, add_file_name);
+      read_formatted_entries (abfd, &line_ptr, lh.get (), &cu->header,
+			      [] (struct line_header *lh, const char *name,
+				  unsigned int dir_index, unsigned int mod_time,
+				  unsigned int length)
+	{
+	  lh->add_file_name (name, dir_index, mod_time, length);
+	});

We can do it afterwards to avoid adding noise to this patch, but I noticed that if we captured lh in the lambda, we could avoid passing the line_header in read_formatted_entries and the callback.

I took a quick look, it looks good to me.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]