diff options
author | Lang Hames <lhames@gmail.com> | 2017-10-10 16:28:07 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2017-10-10 16:28:07 +0000 |
commit | 60fbc7cc38cde63adac7b70391e46141270817ad (patch) | |
tree | 75a5fa4eda963e134c27c8b7f277402e74c86ad5 /llvm/lib/MC/MCObjectStreamer.cpp | |
parent | 37af00e7d0febf397472c40c3b0df5e6ded7688c (diff) | |
download | bcm5719-llvm-60fbc7cc38cde63adac7b70391e46141270817ad.tar.gz bcm5719-llvm-60fbc7cc38cde63adac7b70391e46141270817ad.zip |
[MC] Thread unique_ptr<MCObjectWriter> through the create.*ObjectWriter
functions.
This makes the ownership of the resulting MCObjectWriter clear, and allows us
to remove one instance of MCObjectStreamer's bizarre "holding ownership via
someone else's reference" trick.
llvm-svn: 315327
Diffstat (limited to 'llvm/lib/MC/MCObjectStreamer.cpp')
-rw-r--r-- | llvm/lib/MC/MCObjectStreamer.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp index 65e5b839cae..46d57265d85 100644 --- a/llvm/lib/MC/MCObjectStreamer.cpp +++ b/llvm/lib/MC/MCObjectStreamer.cpp @@ -28,15 +28,14 @@ using namespace llvm; MCObjectStreamer::MCObjectStreamer(MCContext &Context, MCAsmBackend &TAB, raw_pwrite_stream &OS, MCCodeEmitter *Emitter_) - : MCStreamer(Context), + : MCStreamer(Context), ObjectWriter(TAB.createObjectWriter(OS)), Assembler(llvm::make_unique<MCAssembler>(Context, TAB, *Emitter_, - *TAB.createObjectWriter(OS))), + *ObjectWriter)), EmitEHFrame(true), EmitDebugFrame(false) {} MCObjectStreamer::~MCObjectStreamer() { delete &Assembler->getBackend(); delete &Assembler->getEmitter(); - delete &Assembler->getWriter(); } void MCObjectStreamer::flushPendingLabels(MCFragment *F, uint64_t FOffset) { |