aboutsummaryrefslogtreecommitdiffstats
path: root/lib/MC
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2010-07-29 11:57:59 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2010-07-29 11:57:59 +0000
commit808ecfce6a312625bee5c0f4f9831a0d0ed01b16 (patch)
treef66ca6b5ba9e31fa2042f308b61506c1ab79827b /lib/MC
parent82bd5eaa710b18893951e199fda4376e84b7ec34 (diff)
downloadexternal_llvm-808ecfce6a312625bee5c0f4f9831a0d0ed01b16.zip
external_llvm-808ecfce6a312625bee5c0f4f9831a0d0ed01b16.tar.gz
external_llvm-808ecfce6a312625bee5c0f4f9831a0d0ed01b16.tar.bz2
COFFObjectWriter: Don't leak COFFSymbols and COFFSections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109745 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC')
-rw-r--r--lib/MC/WinCOFFObjectWriter.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/MC/WinCOFFObjectWriter.cpp b/lib/MC/WinCOFFObjectWriter.cpp
index 9c31f9a..a4bbc53 100644
--- a/lib/MC/WinCOFFObjectWriter.cpp
+++ b/lib/MC/WinCOFFObjectWriter.cpp
@@ -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);
}