From 3353c592de08c4a7b7b282714b8044d7cfc4c6ad Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Wed, 9 Oct 2013 17:23:41 +0000 Subject: [PATCH] Flip the ownership of MCStreamer and MCTargetStreamer. MCStreamer now owns the target streamer. This prevents leaking the target streamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192303 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/MC/MCStreamer.h | 6 +++--- lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h index 10fc69ef840..d24f3fd4be2 100644 --- a/include/llvm/MC/MCStreamer.h +++ b/include/llvm/MC/MCStreamer.h @@ -66,11 +66,11 @@ typedef std::pair MCSectionSubPair; /// be treated differently. Callers should always talk to a FooTargetStreamer. class MCTargetStreamer { protected: - OwningPtr Streamer; + MCStreamer *Streamer; public: virtual ~MCTargetStreamer(); - void setStreamer(MCStreamer *S) { Streamer.reset(S); } + void setStreamer(MCStreamer *S) { Streamer = S; } }; // FIXME: declared here because it is used from @@ -100,7 +100,7 @@ public: /// class MCStreamer { MCContext &Context; - MCTargetStreamer *TargetStreamer; + OwningPtr TargetStreamer; MCStreamer(const MCStreamer &) LLVM_DELETED_FUNCTION; MCStreamer &operator=(const MCStreamer &) LLVM_DELETED_FUNCTION; diff --git a/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp b/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp index 867782b791b..d4110a45d66 100644 --- a/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp +++ b/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp @@ -305,7 +305,7 @@ private: } // end anonymous namespace ARMELFStreamer &ARMTargetELFStreamer::getStreamer() { - ARMELFStreamer *S = static_cast(Streamer.get()); + ARMELFStreamer *S = static_cast(Streamer); return *S; } -- 2.34.1