From 60fbc7cc38cde63adac7b70391e46141270817ad Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Tue, 10 Oct 2017 16:28:07 +0000 Subject: [MC] Thread unique_ptr 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 --- llvm/lib/MC/MCObjectStreamer.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'llvm/lib/MC/MCObjectStreamer.cpp') 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(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) { -- cgit v1.2.3