summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Riss <friss@apple.com>2014-12-16 20:21:34 +0000
committerFrederic Riss <friss@apple.com>2014-12-16 20:21:34 +0000
commit896b2c53ba2331091e0a0bac17083dcc245e4569 (patch)
treeb11560c662163b4629cbfe5e992fd844c3b4ab28
parent5d3280c7a7fd9ff33631bf696a383cb758505230 (diff)
downloadbcm5719-llvm-896b2c53ba2331091e0a0bac17083dcc245e4569.tar.gz
bcm5719-llvm-896b2c53ba2331091e0a0bac17083dcc245e4569.zip
[dsymutil] Avoid calling getStringTableData() for each symbol. NFC.
llvm-svn: 224360
-rw-r--r--llvm/tools/dsymutil/MachODebugMapParser.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/tools/dsymutil/MachODebugMapParser.cpp b/llvm/tools/dsymutil/MachODebugMapParser.cpp
index 9a5e5453d5b..c67e90c64eb 100644
--- a/llvm/tools/dsymutil/MachODebugMapParser.cpp
+++ b/llvm/tools/dsymutil/MachODebugMapParser.cpp
@@ -36,6 +36,7 @@ private:
object::OwningBinary<object::MachOObjectFile> MainOwningBinary;
/// Map of the binary symbol addresses.
StringMap<uint64_t> MainBinarySymbolAddresses;
+ StringRef MainBinaryStrings;
/// The constructed DebugMap.
std::unique_ptr<DebugMap> Result;
@@ -121,6 +122,7 @@ ErrorOr<std::unique_ptr<DebugMap>> MachODebugMapParser::parse() {
loadMainBinarySymbols();
Result = make_unique<DebugMap>();
const auto &MainBinary = *MainOwningBinary.getBinary();
+ MainBinaryStrings = MainBinary.getStringTableData();
for (const SymbolRef &Symbol : MainBinary.symbols()) {
const DataRefImpl &DRI = Symbol.getRawDataRefImpl();
if (MainBinary.is64Bit())
@@ -142,8 +144,7 @@ void MachODebugMapParser::handleStabSymbolTableEntry(uint32_t StringIndex,
if (!(Type & MachO::N_STAB))
return;
- const MachOObjectFile &MachOBinary = *MainOwningBinary.getBinary();
- const char *Name = &MachOBinary.getStringTableData().data()[StringIndex];
+ const char *Name = &MainBinaryStrings.data()[StringIndex];
// An N_OSO entry represents the start of a new object file description.
if (Type == MachO::N_OSO)
OpenPOWER on IntegriCloud