[Lldb-commits] [PATCH] D65266: SymbolVendor: Make SectionAddressesChanged a passthrough

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Mon Jul 29 08:53:15 PDT 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL367231: SymbolVendor: Make SectionAddressesChanged a passthrough (authored by labath, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65266/new/

https://reviews.llvm.org/D65266

Files:
  lldb/trunk/include/lldb/Symbol/SymbolFile.h
  lldb/trunk/source/Symbol/SymbolFile.cpp
  lldb/trunk/source/Symbol/SymbolVendor.cpp


Index: lldb/trunk/source/Symbol/SymbolVendor.cpp
===================================================================
--- lldb/trunk/source/Symbol/SymbolVendor.cpp
+++ lldb/trunk/source/Symbol/SymbolVendor.cpp
@@ -390,19 +390,8 @@
 }
 
 void SymbolVendor::SectionFileAddressesChanged() {
-  ModuleSP module_sp(GetModule());
-  if (module_sp) {
-    ObjectFile *module_objfile = module_sp->GetObjectFile();
-    if (m_sym_file_up) {
-      ObjectFile *symfile_objfile = m_sym_file_up->GetObjectFile();
-      if (symfile_objfile != module_objfile)
-        symfile_objfile->SectionFileAddressesChanged();
-    }
-    Symtab *symtab = GetSymtab();
-    if (symtab) {
-      symtab->SectionFileAddressesChanged();
-    }
-  }
+  if (m_sym_file_up)
+    m_sym_file_up->SectionFileAddressesChanged();
 }
 
 // PluginInterface protocol
Index: lldb/trunk/source/Symbol/SymbolFile.cpp
===================================================================
--- lldb/trunk/source/Symbol/SymbolFile.cpp
+++ lldb/trunk/source/Symbol/SymbolFile.cpp
@@ -31,6 +31,9 @@
 std::recursive_mutex &SymbolFile::GetModuleMutex() const {
   return GetObjectFile()->GetModule()->GetMutex();
 }
+ObjectFile *SymbolFile::GetMainObjectFile() {
+  return m_obj_file->GetModule()->GetObjectFile();
+}
 
 SymbolFile *SymbolFile::FindPlugin(ObjectFile *obj_file) {
   std::unique_ptr<SymbolFile> best_symfile_up;
@@ -206,7 +209,7 @@
     return m_symtab;
 
   // Fetch the symtab from the main object file.
-  m_symtab = m_obj_file->GetModule()->GetObjectFile()->GetSymtab();
+  m_symtab = GetMainObjectFile()->GetSymtab();
 
   // Then add our symbols to it.
   if (m_symtab)
@@ -215,6 +218,15 @@
   return m_symtab;
 }
 
+void SymbolFile::SectionFileAddressesChanged() {
+  ObjectFile *module_objfile = GetMainObjectFile();
+  ObjectFile *symfile_objfile = GetObjectFile();
+  if (symfile_objfile != module_objfile)
+    symfile_objfile->SectionFileAddressesChanged();
+  if (m_symtab)
+    m_symtab->SectionFileAddressesChanged();
+}
+
 void SymbolFile::Dump(Stream &s) {
   s.PutCString("Types:\n");
   m_type_list.Dump(&s, /*show_context*/ false);
Index: lldb/trunk/include/lldb/Symbol/SymbolFile.h
===================================================================
--- lldb/trunk/include/lldb/Symbol/SymbolFile.h
+++ lldb/trunk/include/lldb/Symbol/SymbolFile.h
@@ -212,6 +212,7 @@
 
   ObjectFile *GetObjectFile() { return m_obj_file; }
   const ObjectFile *GetObjectFile() const { return m_obj_file; }
+  ObjectFile *GetMainObjectFile();
 
   virtual std::vector<CallEdge> ParseCallEdgesInFunction(UserID func_id) {
     return {};
@@ -221,7 +222,7 @@
 
   /// Notify the SymbolFile that the file addresses in the Sections
   /// for this module have been changed.
-  virtual void SectionFileAddressesChanged() {}
+  virtual void SectionFileAddressesChanged();
 
   struct RegisterInfoResolver {
     virtual ~RegisterInfoResolver(); // anchor


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65266.212173.patch
Type: text/x-patch
Size: 2916 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20190729/6e47b199/attachment-0001.bin>


More information about the lldb-commits mailing list