]> granicus.if.org Git - llvm/commitdiff
Do not lookup a DenseMap twice using the same key.
authorRui Ueyama <ruiu@google.com>
Tue, 14 Feb 2017 23:47:34 +0000 (23:47 +0000)
committerRui Ueyama <ruiu@google.com>
Tue, 14 Feb 2017 23:47:34 +0000 (23:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295124 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/WinCOFFObjectWriter.cpp

index 7f626462e6e38f16b21a43382527a1d85e26f1e6..23af66c4bb1022be3fe5d5700c74d9e4743fe05c 100644 (file)
@@ -230,13 +230,10 @@ COFFSymbol *WinCOFFObjectWriter::createSymbol(StringRef Name) {
 }
 
 COFFSymbol *WinCOFFObjectWriter::GetOrCreateCOFFSymbol(const MCSymbol *Symbol) {
-  symbol_map::iterator i = SymbolMap.find(Symbol);
-  if (i != SymbolMap.end())
-    return i->second;
-  COFFSymbol *RetSymbol =
-      createCOFFEntity<COFFSymbol>(Symbol->getName(), Symbols);
-  SymbolMap[Symbol] = RetSymbol;
-  return RetSymbol;
+  COFFSymbol *&Ret = SymbolMap[Symbol];
+  if (!Ret)
+    Ret = createCOFFEntity<COFFSymbol>(Symbol->getName(), Symbols);
+  return Ret;
 }
 
 COFFSection *WinCOFFObjectWriter::createSection(StringRef Name) {