From ca7da16ca05409d8865a3bcb227bb2c2b5d76134 Mon Sep 17 00:00:00 2001 From: Yaron Keren Date: Tue, 16 Sep 2014 21:31:04 +0000 Subject: [PATCH] This add a reset method for WinCOFFObjectWriter, like other MC* classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217907 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/WinCOFFObjectWriter.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/MC/WinCOFFObjectWriter.cpp b/lib/MC/WinCOFFObjectWriter.cpp index a6b7a081bdb..f40e1abb048 100644 --- a/lib/MC/WinCOFFObjectWriter.cpp +++ b/lib/MC/WinCOFFObjectWriter.cpp @@ -113,6 +113,11 @@ public: StringTable(); size_t size() const; size_t insert(StringRef String); + void clear() { + Map.clear(); + Data.resize(4); + update_length(); + } }; class WinCOFFObjectWriter : public MCObjectWriter { @@ -139,6 +144,17 @@ public: bool UseBigObj; WinCOFFObjectWriter(MCWinCOFFObjectTargetWriter *MOTW, raw_ostream &OS); + + void reset() override { + memset(&Header, 0, sizeof(Header)); + Header.Machine = TargetObjectWriter->getMachine(); + Sections.clear(); + Symbols.clear(); + Strings.clear(); + SectionMap.clear(); + SymbolMap.clear(); + MCObjectWriter::reset(); + } COFFSymbol *createSymbol(StringRef Name); COFFSymbol *GetOrCreateCOFFSymbol(const MCSymbol * Symbol); -- 2.34.1