diff options
author | Frederic Riss <friss@apple.com> | 2014-12-16 20:21:34 +0000 |
---|---|---|
committer | Frederic Riss <friss@apple.com> | 2014-12-16 20:21:34 +0000 |
commit | 896b2c53ba2331091e0a0bac17083dcc245e4569 (patch) | |
tree | b11560c662163b4629cbfe5e992fd844c3b4ab28 | |
parent | 5d3280c7a7fd9ff33631bf696a383cb758505230 (diff) | |
download | bcm5719-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.cpp | 5 |
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) |