[llvm-commits] [llvm] r166517 - /llvm/trunk/include/llvm/ADT/StringSet.h
Michael J. Spencer
bigcheesegs at gmail.com
Tue Oct 23 15:55:54 PDT 2012
Author: mspencer
Date: Tue Oct 23 17:55:54 2012
New Revision: 166517
URL: http://llvm.org/viewvc/llvm-project?rev=166517&view=rev
Log:
[Support/StringSet] Fix memory leak when inserted key already exists.
Modified:
llvm/trunk/include/llvm/ADT/StringSet.h
Modified: llvm/trunk/include/llvm/ADT/StringSet.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/StringSet.h?rev=166517&r1=166516&r2=166517&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/StringSet.h (original)
+++ llvm/trunk/include/llvm/ADT/StringSet.h Tue Oct 23 17:55:54 2012
@@ -29,8 +29,13 @@
assert(!InLang.empty());
const char *KeyStart = InLang.data();
const char *KeyEnd = KeyStart + InLang.size();
- return base::insert(llvm::StringMapEntry<char>::
- Create(KeyStart, KeyEnd, base::getAllocator(), '+'));
+ llvm::StringMapEntry<char> *Entry = llvm::StringMapEntry<char>::
+ Create(KeyStart, KeyEnd, base::getAllocator(), '+');
+ if (!base::insert(Entry)) {
+ Entry->Destroy(base::getAllocator());
+ return false;
+ }
+ return true;
}
};
}
More information about the llvm-commits
mailing list