[dsymutil] Avoid repeated hash lookups (NFC) (#131268)
diff --git a/llvm/tools/dsymutil/BinaryHolder.cpp b/llvm/tools/dsymutil/BinaryHolder.cpp
index 9429afe..58751bd 100644
--- a/llvm/tools/dsymutil/BinaryHolder.cpp
+++ b/llvm/tools/dsymutil/BinaryHolder.cpp
@@ -242,9 +242,9 @@
StringRef ArchiveFilename = getArchiveAndObjectName(Filename).first;
std::lock_guard<std::mutex> Lock(ArchiveCacheMutex);
ArchiveRefCounter[ArchiveFilename]++;
- if (ArchiveCache.count(ArchiveFilename)) {
- return ArchiveCache[ArchiveFilename]->getObjectEntry(Filename, Timestamp,
- Opts);
+ if (auto It = ArchiveCache.find(ArchiveFilename);
+ It != ArchiveCache.end()) {
+ return It->second->getObjectEntry(Filename, Timestamp, Opts);
} else {
auto AE = std::make_unique<ArchiveEntry>();
auto Err = AE->load(VFS, Filename, Timestamp, Opts);
@@ -252,9 +252,9 @@
// Don't return the error here: maybe the file wasn't an archive.
llvm::consumeError(std::move(Err));
} else {
- ArchiveCache[ArchiveFilename] = std::move(AE);
- return ArchiveCache[ArchiveFilename]->getObjectEntry(Filename,
- Timestamp, Opts);
+ auto &Cache = ArchiveCache[ArchiveFilename];
+ Cache = std::move(AE);
+ return Cache->getObjectEntry(Filename, Timestamp, Opts);
}
}
}