diff options
| author | Stephen Wilson <wilsons@start.ca> | 2011-02-24 19:16:15 +0000 |
|---|---|---|
| committer | Stephen Wilson <wilsons@start.ca> | 2011-02-24 19:16:15 +0000 |
| commit | 3f4200fd9dc4cca612d327f5264c122684d8dbd9 (patch) | |
| tree | 9f7e83ebeec8b56189310de439ad0e352dead863 | |
| parent | bd58871d9688420999fc1308eb5af5f5ee8dab3e (diff) | |
| download | bcm5719-llvm-3f4200fd9dc4cca612d327f5264c122684d8dbd9.tar.gz bcm5719-llvm-3f4200fd9dc4cca612d327f5264c122684d8dbd9.zip | |
linux: Remove a local ObjectFileELF version of GetArchitecture.
Also fix a bug where we were not lazily parsing the ELF header and thus
returning an ArchSpec with invalid cpu type components. Initialize the cpu
subtype as LLDB_INVALID_CPUTYPE for compatibility with the new ArchSpec
implementation.
llvm-svn: 126405
| -rw-r--r-- | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp | 18 | ||||
| -rw-r--r-- | lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h | 3 |
2 files changed, 7 insertions, 14 deletions
diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp index 445518d9e64..8793cfac93e 100644 --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp +++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp @@ -74,8 +74,9 @@ ObjectFileELF::CreateInstance(Module *module, { std::auto_ptr<ObjectFileELF> objfile_ap( new ObjectFileELF(module, data_sp, file, offset, length)); - ArchSpec spec = objfile_ap->GetArchitecture(); - if (spec.IsValid() && objfile_ap->SetModulesArchitecture(spec)) + ArchSpec spec; + if (objfile_ap->GetArchitecture(spec) && + objfile_ap->SetModulesArchitecture(spec)) return objfile_ap.release(); } } @@ -83,14 +84,6 @@ ObjectFileELF::CreateInstance(Module *module, return NULL; } -ArchSpec -ObjectFileELF::GetArchitecture() -{ - if (!ParseHeader()) - return ArchSpec(); - - return ArchSpec(eArchTypeELF, m_header.e_machine, m_header.e_flags); -} //------------------------------------------------------------------ // PluginInterface protocol @@ -1046,7 +1039,10 @@ ObjectFileELF::DumpDependentModules(lldb_private::Stream *s) bool ObjectFileELF::GetArchitecture (ArchSpec &arch) { - arch.SetArchitecture (lldb::eArchTypeELF, m_header.e_machine, m_header.e_flags); + if (!ParseHeader()) + return false; + + arch.SetArchitecture (lldb::eArchTypeELF, m_header.e_machine, LLDB_INVALID_CPUTYPE); arch.GetTriple().setOSName (Host::GetOSString().GetCString()); arch.GetTriple().setVendorName(Host::GetVendorString().GetCString()); return true; diff --git a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h index ad97165bb83..5de0a8aa83a 100644 --- a/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h +++ b/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h @@ -116,9 +116,6 @@ public: virtual lldb_private::Address GetImageInfoAddress(); - lldb_private::ArchSpec - GetArchitecture(); - private: ObjectFileELF(lldb_private::Module* module, lldb::DataBufferSP& dataSP, |

