summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-10-09 17:23:41 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-10-09 17:23:41 +0000
commit3353c592de08c4a7b7b282714b8044d7cfc4c6ad (patch)
tree9a267531577e125099e551c6bb10866a6a9bff7c
parente0409098aee1270164a7e453e450264f8e62cbfd (diff)
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
-rw-r--r--include/llvm/MC/MCStreamer.h6
-rw-r--r--lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp2
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<const MCSection *, const MCExpr *> MCSectionSubPair;
/// be treated differently. Callers should always talk to a FooTargetStreamer.
class MCTargetStreamer {
protected:
- OwningPtr<MCStreamer> 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<MCTargetStreamer> 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<ARMELFStreamer *>(Streamer.get());
+ ARMELFStreamer *S = static_cast<ARMELFStreamer *>(Streamer);
return *S;
}