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
This commit is contained in:
Greg Clayton
2013-07-10 01:23:25 +00:00
parent 8978a9dd0a
commit 3046e66830
30 changed files with 988 additions and 1073 deletions

View File

@@ -406,7 +406,7 @@ SBModule::GetNumSections ()
{
// Give the symbol vendor a chance to add to the unified section list.
module_sp->GetSymbolVendor();
SectionList *section_list = module_sp->GetUnifiedSectionList();
SectionList *section_list = module_sp->GetSectionList();
if (section_list)
return section_list->GetSize();
}
@@ -422,7 +422,7 @@ SBModule::GetSectionAtIndex (size_t idx)
{
// Give the symbol vendor a chance to add to the unified section list.
module_sp->GetSymbolVendor();
SectionList *section_list = module_sp->GetUnifiedSectionList ();
SectionList *section_list = module_sp->GetSectionList ();
if (section_list)
sb_section.SetSP(section_list->GetSectionAtIndex (idx));
@@ -587,7 +587,7 @@ SBModule::FindSection (const char *sect_name)
{
// Give the symbol vendor a chance to add to the unified section list.
module_sp->GetSymbolVendor();
SectionList *section_list = module_sp->GetUnifiedSectionList();
SectionList *section_list = module_sp->GetSectionList();
if (section_list)
{
ConstString const_sect_name(sect_name);