diff options
| author | Greg Clayton <gclayton@apple.com> | 2013-07-10 01:23:25 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2013-07-10 01:23:25 +0000 |
| commit | 3046e668301ec9df4ead087fdc906877b9dcbf82 (patch) | |
| tree | ff149c296cddf3415649f2571282ef53b3554fbd /lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp | |
| parent | 8978a9dd0a42139809f56b6df47a0663f341918b (diff) | |
| download | bcm5719-llvm-3046e668301ec9df4ead087fdc906877b9dcbf82.tar.gz bcm5719-llvm-3046e668301ec9df4ead087fdc906877b9dcbf82.zip | |
Cleanup on the unified section list changes. Main changes are:
- ObjectFile::GetSymtab() and ObjectFile::ClearSymtab() no longer takes any flags
- Module coordinates with the object files and contain a unified section list so that object file and symbol file can share sections when they need to, yet contain their own sections.
Other cleanups:
- Fixed Symbol::GetByteSize() to not have the symbol table compute the byte sizes on the fly
- Modified the ObjectFileMachO class to compute symbol sizes all at once efficiently
- Modified the Symtab class to store a file address lookup table for more efficient lookups
- Removed Section::Finalize() and SectionList::Finalize() as they did nothing
- Improved performance of the detection of symbol files that have debug maps by excluding stripped files and core files, debug files, object files and stubs
- Added the ability to tell if an ObjectFile has been stripped with ObjectFile::IsStripped() (used this for the above performance improvement)
llvm-svn: 185990
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp')
| -rw-r--r-- | lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp b/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp index f0bd08569b9..28078693b35 100644 --- a/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp +++ b/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp @@ -93,7 +93,7 @@ SymbolFileSymtab::CalculateAbilities () uint32_t abilities = 0; if (m_obj_file) { - const Symtab *symtab = m_obj_file->GetSymtab(ObjectFile::eSymtabFromUnifiedSectionList); + const Symtab *symtab = m_obj_file->GetSymtab(); if (symtab) { //---------------------------------------------------------------------- @@ -159,7 +159,7 @@ SymbolFileSymtab::ParseCompileUnitAtIndex(uint32_t idx) // the entire object file if (idx < m_source_indexes.size()) { - const Symbol *cu_symbol = m_obj_file->GetSymtab(ObjectFile::eSymtabFromUnifiedSectionList)->SymbolAtIndex(m_source_indexes[idx]); + const Symbol *cu_symbol = m_obj_file->GetSymtab()->SymbolAtIndex(m_source_indexes[idx]); if (cu_symbol) cu_sp.reset(new CompileUnit (m_obj_file->GetModule(), NULL, cu_symbol->GetMangled().GetName().AsCString(), 0, eLanguageTypeUnknown)); } @@ -179,7 +179,7 @@ SymbolFileSymtab::ParseCompileUnitFunctions (const SymbolContext &sc) size_t num_added = 0; // We must at least have a valid compile unit assert (sc.comp_unit != NULL); - const Symtab *symtab = m_obj_file->GetSymtab(ObjectFile::eSymtabFromUnifiedSectionList); + const Symtab *symtab = m_obj_file->GetSymtab(); const Symbol *curr_symbol = NULL; const Symbol *next_symbol = NULL; // const char *prefix = m_obj_file->SymbolPrefix(); @@ -307,13 +307,13 @@ SymbolFileSymtab::FindNamespace (const SymbolContext& sc, const ConstString &nam uint32_t SymbolFileSymtab::ResolveSymbolContext (const Address& so_addr, uint32_t resolve_scope, SymbolContext& sc) { - if (m_obj_file->GetSymtab(ObjectFile::eSymtabFromUnifiedSectionList) == NULL) + if (m_obj_file->GetSymtab() == NULL) return 0; uint32_t resolved_flags = 0; if (resolve_scope & eSymbolContextSymbol) { - sc.symbol = m_obj_file->GetSymtab(ObjectFile::eSymtabFromUnifiedSectionList)->FindSymbolContainingFileAddress(so_addr.GetFileAddress()); + sc.symbol = m_obj_file->GetSymtab()->FindSymbolContainingFileAddress(so_addr.GetFileAddress()); if (sc.symbol) resolved_flags |= eSymbolContextSymbol; } |

