diff options
| -rw-r--r-- | lldb/include/lldb/Core/Module.h | 7 | ||||
| -rw-r--r-- | lldb/include/lldb/Symbol/SymbolFile.h | 8 | ||||
| -rw-r--r-- | lldb/include/lldb/Symbol/SymbolVendor.h | 6 | ||||
| -rw-r--r-- | lldb/include/lldb/Symbol/Type.h | 2 | ||||
| -rw-r--r-- | lldb/source/API/SBCompileUnit.cpp | 1 | ||||
| -rw-r--r-- | lldb/source/Core/Module.cpp | 7 | ||||
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp | 6 | ||||
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 12 | ||||
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h | 4 | ||||
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp | 6 | ||||
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp | 8 | ||||
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h | 2 | ||||
| -rw-r--r-- | lldb/source/Symbol/SymbolFile.cpp | 10 | ||||
| -rw-r--r-- | lldb/source/Symbol/SymbolVendor.cpp | 7 | ||||
| -rw-r--r-- | lldb/source/Symbol/Type.cpp | 2 | 
15 files changed, 23 insertions, 65 deletions
diff --git a/lldb/include/lldb/Core/Module.h b/lldb/include/lldb/Core/Module.h index 544895ea89e..19bcbd6e80b 100644 --- a/lldb/include/lldb/Core/Module.h +++ b/lldb/include/lldb/Core/Module.h @@ -653,13 +653,6 @@ public:    GetSymbolVendor(bool can_create = true,                    lldb_private::Stream *feedback_strm = nullptr); -  /// Get accessor the type list for this module. -  /// -  /// \return -  ///     A valid type list pointer, or nullptr if there is no valid -  ///     symbol vendor for this module. -  TypeList *GetTypeList(); -    /// Get a reference to the UUID value contained in this object.    ///    /// If the executable image file doesn't not have a UUID value built into diff --git a/lldb/include/lldb/Symbol/SymbolFile.h b/lldb/include/lldb/Symbol/SymbolFile.h index db5af3c4e8c..e41f50e1944 100644 --- a/lldb/include/lldb/Symbol/SymbolFile.h +++ b/lldb/include/lldb/Symbol/SymbolFile.h @@ -16,6 +16,7 @@  #include "lldb/Symbol/Function.h"  #include "lldb/Symbol/SourceModule.h"  #include "lldb/Symbol/Type.h" +#include "lldb/Symbol/TypeList.h"  #include "lldb/lldb-private.h"  #include "llvm/ADT/DenseSet.h" @@ -191,10 +192,7 @@ public:    virtual void    GetMangledNamesForFunction(const std::string &scope_qualified_name,                               std::vector<ConstString> &mangled_names); -  //  virtual uint32_t        FindTypes (const SymbolContext& sc, const -  //  RegularExpression& regex, bool append, uint32_t max_matches, TypeList& -  //  types) = 0; -  virtual TypeList *GetTypeList(); +    virtual size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,                            lldb::TypeClass type_mask,                            lldb_private::TypeList &type_list) = 0; @@ -241,11 +239,13 @@ protected:    void AssertModuleLock();    virtual uint32_t CalculateNumCompileUnits() = 0;    virtual lldb::CompUnitSP ParseCompileUnitAtIndex(uint32_t idx) = 0; +  virtual TypeList &GetTypeList() { return m_type_list; }    void SetCompileUnitAtIndex(uint32_t idx, const lldb::CompUnitSP &cu_sp);    ObjectFile *m_obj_file; // The object file that symbols can be extracted from.    llvm::Optional<std::vector<lldb::CompUnitSP>> m_compile_units; +  TypeList m_type_list;    uint32_t m_abilities;    bool m_calculated_abilities; diff --git a/lldb/include/lldb/Symbol/SymbolVendor.h b/lldb/include/lldb/Symbol/SymbolVendor.h index 8faf69ee664..413b1f4b958 100644 --- a/lldb/include/lldb/Symbol/SymbolVendor.h +++ b/lldb/include/lldb/Symbol/SymbolVendor.h @@ -14,7 +14,6 @@  #include "lldb/Core/ModuleChild.h"  #include "lldb/Core/PluginInterface.h"  #include "lldb/Symbol/SourceModule.h" -#include "lldb/Symbol/TypeList.h"  #include "lldb/Symbol/TypeMap.h"  #include "lldb/lldb-private.h"  #include "llvm/ADT/DenseSet.h" @@ -112,10 +111,6 @@ public:    virtual lldb::CompUnitSP GetCompileUnitAtIndex(size_t idx); -  TypeList &GetTypeList() { return m_type_list; } - -  const TypeList &GetTypeList() const { return m_type_list; } -    virtual size_t GetTypes(SymbolContextScope *sc_scope,                            lldb::TypeClass type_mask, TypeList &type_list); @@ -139,7 +134,6 @@ public:    uint32_t GetPluginVersion() override;  protected: -  TypeList m_type_list; // Uniqued types for all parsers owned by this module    lldb::ObjectFileSP m_objfile_sp; // Keep a reference to the object file in                                     // case it isn't the same as the module                                     // object file (debug symbols in a separate diff --git a/lldb/include/lldb/Symbol/Type.h b/lldb/include/lldb/Symbol/Type.h index efc9bf049a3..b97af89c868 100644 --- a/lldb/include/lldb/Symbol/Type.h +++ b/lldb/include/lldb/Symbol/Type.h @@ -117,8 +117,6 @@ public:    SymbolFile *GetSymbolFile() { return m_symbol_file; }    const SymbolFile *GetSymbolFile() const { return m_symbol_file; } -  TypeList *GetTypeList(); -    ConstString GetName();    llvm::Optional<uint64_t> GetByteSize(); diff --git a/lldb/source/API/SBCompileUnit.cpp b/lldb/source/API/SBCompileUnit.cpp index c9ca70645d9..341268f98c7 100644 --- a/lldb/source/API/SBCompileUnit.cpp +++ b/lldb/source/API/SBCompileUnit.cpp @@ -16,6 +16,7 @@  #include "lldb/Symbol/LineTable.h"  #include "lldb/Symbol/SymbolVendor.h"  #include "lldb/Symbol/Type.h" +#include "lldb/Symbol/TypeList.h"  using namespace lldb;  using namespace lldb_private; diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index d17596ecbcd..2dd0e5998e9 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -1240,13 +1240,6 @@ void Module::Dump(Stream *s) {    s->IndentLess();  } -TypeList *Module::GetTypeList() { -  SymbolVendor *symbols = GetSymbolVendor(); -  if (symbols) -    return &symbols->GetTypeList(); -  return nullptr; -} -  ConstString Module::GetObjectName() const { return m_object_name; }  ObjectFile *Module::GetObjectFile() { diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp index 161589e01fb..b2240e2421e 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp @@ -188,7 +188,7 @@ TypeSP DWARFASTParserClang::ParseTypeFromDWO(const DWARFDIE &die, Log *log) {        nullptr, LLDB_INVALID_UID, Type::eEncodingInvalid,        &dwo_type_sp->GetDeclaration(), type, Type::eResolveStateForward)); -  dwarf->GetTypeList()->Insert(type_sp); +  dwarf->GetTypeList().Insert(type_sp);    dwarf->GetDIEToType()[die.GetDIE()] = type_sp.get();    clang::TagDecl *tag_decl = ClangASTContext::GetAsTagDecl(type);    if (tag_decl) @@ -434,7 +434,7 @@ TypeSP DWARFASTParserClang::ParseTypeFromDWARF(const SymbolContext &sc,      return nullptr;    } -  TypeList *type_list = dwarf->GetTypeList(); +  TypeList &type_list = dwarf->GetTypeList();    if (type_is_new_ptr)      *type_is_new_ptr = true; @@ -1672,7 +1672,7 @@ TypeSP DWARFASTParserClang::ParseTypeFromDWARF(const SymbolContext &sc,      // We are ready to put this type into the uniqued list up at the module      // level -    type_list->Insert(type_sp); +    type_list.Insert(type_sp);      dwarf->GetDIEToType()[die.GetDIE()] = type_sp.get();    } diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index 3b6d8da2312..362e1525864 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -202,15 +202,13 @@ SymbolFile *SymbolFileDWARF::CreateInstance(ObjectFile *obj_file) {                               /*dwo_section_list*/ nullptr);  } -TypeList *SymbolFileDWARF::GetTypeList() { +TypeList &SymbolFileDWARF::GetTypeList() {    // This method can be called without going through the symbol vendor so we    // need to lock the module.    std::lock_guard<std::recursive_mutex> guard(GetModuleMutex()); -  SymbolFileDWARFDebugMap *debug_map_symfile = GetDebugMapSymfile(); -  if (debug_map_symfile) +  if (SymbolFileDWARFDebugMap *debug_map_symfile = GetDebugMapSymfile())      return debug_map_symfile->GetTypeList(); -  else -    return m_obj_file->GetModule()->GetTypeList(); +  return SymbolFile::GetTypeList();  }  void SymbolFileDWARF::GetTypes(const DWARFDIE &die, dw_offset_t min_die_offset,                                 dw_offset_t max_die_offset, uint32_t type_mask, @@ -2971,9 +2969,7 @@ TypeSP SymbolFileDWARF::ParseType(const SymbolContext &sc, const DWARFDIE &die,    Log *log = LogChannelDWARF::GetLogIfAll(DWARF_LOG_DEBUG_INFO);    TypeSP type_sp = dwarf_ast->ParseTypeFromDWARF(sc, die, log, type_is_new_ptr);    if (type_sp) { -    TypeList *type_list = GetTypeList(); -    if (type_list) -      type_list->Insert(type_sp); +    GetTypeList().Insert(type_sp);      if (die.Tag() == DW_TAG_subprogram) {        std::string scope_qualified_name(GetDeclContextForUID(die.GetID()) diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h index 6daa060b9a0..bf53ad6a82a 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h @@ -186,8 +186,6 @@ public:    size_t FindTypes(const std::vector<lldb_private::CompilerContext> &context,                     bool append, lldb_private::TypeMap &types) override; -  lldb_private::TypeList *GetTypeList() override; -    size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,                    lldb::TypeClass type_mask,                    lldb_private::TypeList &type_list) override; @@ -331,6 +329,8 @@ protected:    lldb::CompUnitSP ParseCompileUnitAtIndex(uint32_t index) override; +  lldb_private::TypeList &GetTypeList() override; +    virtual DWARFUnit *    GetDWARFCompileUnit(lldb_private::CompileUnit *comp_unit); diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp index 9585b35152f..e7ff32832b9 100644 --- a/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp +++ b/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp @@ -729,7 +729,7 @@ TypeSP SymbolFileNativePDB::GetOrCreateType(PdbTypeSymId type_id) {    TypeSP type = CreateAndCacheType(type_id);    if (type) -    m_obj_file->GetModule()->GetTypeList()->Insert(type); +    GetTypeList().Insert(type);    return type;  } @@ -1283,7 +1283,7 @@ size_t SymbolFileNativePDB::ParseTypes(CompileUnit &comp_unit) {    if (m_done_full_type_scan)      return 0; -  size_t old_count = m_obj_file->GetModule()->GetTypeList()->GetSize(); +  const size_t old_count = GetTypeList().GetSize();    LazyRandomTypeCollection &types = m_index->tpi().typeCollection();    // First process the entire TPI stream. @@ -1313,7 +1313,7 @@ size_t SymbolFileNativePDB::ParseTypes(CompileUnit &comp_unit) {        GetOrCreateTypedef(global);    } -  size_t new_count = m_obj_file->GetModule()->GetTypeList()->GetSize(); +  const size_t new_count = GetTypeList().GetSize();    m_done_full_type_scan = true; diff --git a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp index c6c25fd719c..4fea49c287a 100644 --- a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp +++ b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp @@ -557,9 +557,7 @@ lldb_private::Type *SymbolFilePDB::ResolveTypeUID(lldb::user_id_t type_uid) {    lldb::TypeSP result = pdb->CreateLLDBTypeFromPDBType(*pdb_type);    if (result) {      m_types.insert(std::make_pair(type_uid, result)); -    auto type_list = GetTypeList(); -    if (type_list) -      type_list->Insert(result); +    GetTypeList().Insert(result);    }    return result.get();  } @@ -1516,10 +1514,6 @@ size_t SymbolFilePDB::FindTypes(    return 0;  } -lldb_private::TypeList *SymbolFilePDB::GetTypeList() { -  return m_obj_file->GetModule()->GetTypeList(); -} -  void SymbolFilePDB::GetTypesForPDBSymbol(const llvm::pdb::PDBSymbol &pdb_symbol,                                           uint32_t type_mask,                                           TypeCollection &type_collection) { diff --git a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h index 13bff40958f..fc33202566f 100644 --- a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h +++ b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h @@ -138,8 +138,6 @@ public:    void FindTypesByRegex(const lldb_private::RegularExpression ®ex,                          uint32_t max_matches, lldb_private::TypeMap &types); -  lldb_private::TypeList *GetTypeList() override; -    size_t GetTypes(lldb_private::SymbolContextScope *sc_scope,                    lldb::TypeClass type_mask,                    lldb_private::TypeList &type_list) override; diff --git a/lldb/source/Symbol/SymbolFile.cpp b/lldb/source/Symbol/SymbolFile.cpp index 086d9857ce3..7e634e63052 100644 --- a/lldb/source/Symbol/SymbolFile.cpp +++ b/lldb/source/Symbol/SymbolFile.cpp @@ -82,12 +82,6 @@ SymbolFile *SymbolFile::FindPlugin(ObjectFile *obj_file) {    return best_symfile_up.release();  } -TypeList *SymbolFile::GetTypeList() { -  if (m_obj_file) -    return m_obj_file->GetModule()->GetTypeList(); -  return nullptr; -} -  TypeSystem *SymbolFile::GetTypeSystemForLanguage(lldb::LanguageType language) {    TypeSystem *type_system =        m_obj_file->GetModule()->GetTypeSystemForLanguage(language); @@ -206,6 +200,10 @@ void SymbolFile::SetCompileUnitAtIndex(uint32_t idx, const CompUnitSP &cu_sp) {  }  void SymbolFile::Dump(Stream &s) { +  s.PutCString("Types:\n"); +  m_type_list.Dump(&s, /*show_context*/ false); +  s.PutChar('\n'); +    s.PutCString("Compile units:\n");    if (m_compile_units) {      for (const CompUnitSP &cu_sp : *m_compile_units) { diff --git a/lldb/source/Symbol/SymbolVendor.cpp b/lldb/source/Symbol/SymbolVendor.cpp index f0db9c8d1ed..30e78ef91eb 100644 --- a/lldb/source/Symbol/SymbolVendor.cpp +++ b/lldb/source/Symbol/SymbolVendor.cpp @@ -58,7 +58,7 @@ SymbolVendor *SymbolVendor::FindPlugin(const lldb::ModuleSP &module_sp,  // SymbolVendor constructor  SymbolVendor::SymbolVendor(const lldb::ModuleSP &module_sp) -    : ModuleChild(module_sp), m_type_list(), m_sym_file_up(), m_symtab() {} +    : ModuleChild(module_sp), m_sym_file_up(), m_symtab() {}  // Destructor  SymbolVendor::~SymbolVendor() {} @@ -336,8 +336,6 @@ void SymbolVendor::Dump(Stream *s) {    if (module_sp) {      std::lock_guard<std::recursive_mutex> guard(module_sp->GetMutex()); -    bool show_context = false; -      s->Printf("%p: ", static_cast<void *>(this));      s->Indent();      s->PutCString("SymbolVendor"); @@ -354,9 +352,6 @@ void SymbolVendor::Dump(Stream *s) {        }      }      s->EOL(); -    s->PutCString("Types:\n"); -    m_type_list.Dump(s, show_context); -    s->EOL();      if (m_sym_file_up)        m_sym_file_up->Dump(*s);      s->IndentMore(); diff --git a/lldb/source/Symbol/Type.cpp b/lldb/source/Symbol/Type.cpp index 4ee8330ce28..c16e6471acd 100644 --- a/lldb/source/Symbol/Type.cpp +++ b/lldb/source/Symbol/Type.cpp @@ -425,8 +425,6 @@ bool Type::WriteToMemory(ExecutionContext *exe_ctx, lldb::addr_t addr,    return false;  } -TypeList *Type::GetTypeList() { return GetSymbolFile()->GetTypeList(); } -  const Declaration &Type::GetDeclaration() const { return m_decl; }  bool Type::ResolveClangType(ResolveState compiler_type_resolve_state) {  | 

