From aabd6c1ce82debc954195470d2f8d4c2a26564de Mon Sep 17 00:00:00 2001 From: Frederic Riss Date: Tue, 16 Dec 2014 20:21:34 +0000 Subject: [PATCH] [dsymutil] Avoid calling getStringTableData() for each symbol. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224360 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/dsymutil/MachODebugMapParser.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/dsymutil/MachODebugMapParser.cpp b/tools/dsymutil/MachODebugMapParser.cpp index 9a5e5453d5b..c67e90c64eb 100644 --- a/tools/dsymutil/MachODebugMapParser.cpp +++ b/tools/dsymutil/MachODebugMapParser.cpp @@ -36,6 +36,7 @@ private: object::OwningBinary MainOwningBinary; /// Map of the binary symbol addresses. StringMap MainBinarySymbolAddresses; + StringRef MainBinaryStrings; /// The constructed DebugMap. std::unique_ptr Result; @@ -121,6 +122,7 @@ ErrorOr> MachODebugMapParser::parse() { loadMainBinarySymbols(); Result = make_unique(); 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) -- 2.34.1