[review] Change objfile::partial_symtabs to be a unique_ptr

Message ID gerrit.1572831291000.I3d7831006c40d4c8f3173ba51c0c1b0a32021ae5@gnutoolchain-gerrit.osci.io
State New, archived
Headers

Commit Message

Simon Marchi (Code Review) Nov. 4, 2019, 1:34 a.m. UTC
  Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/502
......................................................................

Change objfile::partial_symtabs to be a unique_ptr

A plan I had a while ago was to write the DWARF index in a worker
thread.  This is why objfile::partial_symtabs is a shared_ptr.

However, it turned out that doing this required keeping the objfile
alive as well.  Now that objfiles are managed using shared_ptr,
there's no need for partial_symtabs to be one as well, so this patch
reverts that change.

2019-11-03  Tom Tromey  <tom@tromey.com>

	* objfiles.h (struct objfile) <partial_symtabs>: Now a
	unique_ptr.

Change-Id: I3d7831006c40d4c8f3173ba51c0c1b0a32021ae5
---
M gdb/ChangeLog
M gdb/objfiles.h
2 files changed, 6 insertions(+), 1 deletion(-)
  

Comments

Simon Marchi (Code Review) Dec. 12, 2019, 11:49 p.m. UTC | #1
Tom Tromey has posted comments on this change.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/502
......................................................................


Patch Set 1:

I'm checking this series in.  This is a refactoring that helps unblock
some parallelizing patches I'm working on.
  

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bbfddb0..31a0de4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@ 
 2019-11-03  Tom Tromey  <tom@tromey.com>
 
+	* objfiles.h (struct objfile) <partial_symtabs>: Now a
+	unique_ptr.
+
+2019-11-03  Tom Tromey  <tom@tromey.com>
+
 	* progspace.h (objfile_list): New typedef.
 	(class unwrapping_objfile_iterator)
 	(struct unwrapping_objfile_range): Newl
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index f825621..5e06a69 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -518,7 +518,7 @@ 
 
   /* The partial symbol tables.  */
 
-  std::shared_ptr<psymtab_storage> partial_symtabs;
+  std::unique_ptr<psymtab_storage> partial_symtabs;
 
   /* The object file's BFD.  Can be null if the objfile contains only
      minimal symbols, e.g. the run time common symbols for SunOS4.  */