COFFObjectWriter: Don't leak COFFSymbols and COFFSections.
authorBenjamin Kramer <benny.kra@googlemail.com>
Thu, 29 Jul 2010 11:57:59 +0000 (11:57 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Thu, 29 Jul 2010 11:57:59 +0000 (11:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109745 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/WinCOFFObjectWriter.cpp

index 9c31f9a93dc9ab0a39bf61c5c2c0e105a31b1b48..a4bbc53e78f9015e768a40231a6a41d57d7016eb 100644 (file)
@@ -131,6 +131,7 @@ public:
   symbol_map  SymbolMap;
 
   WinCOFFObjectWriter(raw_ostream &OS);
+  ~WinCOFFObjectWriter();
 
   COFFSymbol *createSymbol(llvm::StringRef Name);
   COFFSection *createSection(llvm::StringRef Name);
@@ -275,6 +276,13 @@ WinCOFFObjectWriter::WinCOFFObjectWriter(raw_ostream &OS)
   Header.Machine = 0x14C; // x86
 }
 
+WinCOFFObjectWriter::~WinCOFFObjectWriter() {
+  for (symbols::iterator I = Symbols.begin(), E = Symbols.end(); I != E; ++I)
+    delete *I;
+  for (sections::iterator I = Sections.begin(), E = Sections.end(); I != E; ++I)
+    delete *I;
+}
+
 COFFSymbol *WinCOFFObjectWriter::createSymbol(llvm::StringRef Name) {
   return createCOFFEntity<COFFSymbol>(Name, Symbols);
 }