diff options
author | Alexander Kornienko <alexfh@google.com> | 2014-11-17 23:46:02 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2014-11-17 23:46:02 +0000 |
commit | 41c247a677f0dafaa13fc05a028275334d5df779 (patch) | |
tree | ed924630113ca0750c462364131a85f1894d8bdf /clang/lib/Basic/Diagnostic.cpp | |
parent | d60b82f93eee090650d848c45f34dcf9d3ffa0ea (diff) | |
download | bcm5719-llvm-41c247a677f0dafaa13fc05a028275334d5df779.tar.gz bcm5719-llvm-41c247a677f0dafaa13fc05a028275334d5df779.zip |
Make DiagnosticsEngine::takeClient return std::unique_ptr<>
Summary:
Make DiagnosticsEngine::takeClient return std::unique_ptr<>. Updated
callers to store conditional ownership using a pair of pointer and unique_ptr
instead of a pointer + bool. Updated code that temporarily registers clients to
use the non-owning registration (+ removed extra calls to takeClient).
Reviewers: dblaikie
Reviewed By: dblaikie
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D6294
llvm-svn: 222193
Diffstat (limited to 'clang/lib/Basic/Diagnostic.cpp')
-rw-r--r-- | clang/lib/Basic/Diagnostic.cpp | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/clang/lib/Basic/Diagnostic.cpp b/clang/lib/Basic/Diagnostic.cpp index 59a75df3304..5c066efa108 100644 --- a/clang/lib/Basic/Diagnostic.cpp +++ b/clang/lib/Basic/Diagnostic.cpp @@ -33,13 +33,11 @@ static void DummyArgToStringFn(DiagnosticsEngine::ArgumentKind AK, intptr_t QT, Output.append(Str.begin(), Str.end()); } - DiagnosticsEngine::DiagnosticsEngine( - const IntrusiveRefCntPtr<DiagnosticIDs> &diags, - DiagnosticOptions *DiagOpts, - DiagnosticConsumer *client, bool ShouldOwnClient) - : Diags(diags), DiagOpts(DiagOpts), Client(client), - OwnsDiagClient(ShouldOwnClient), SourceMgr(nullptr) { + const IntrusiveRefCntPtr<DiagnosticIDs> &diags, DiagnosticOptions *DiagOpts, + DiagnosticConsumer *client, bool ShouldOwnClient) + : Diags(diags), DiagOpts(DiagOpts), Client(nullptr), SourceMgr(nullptr) { + setClient(client, ShouldOwnClient); ArgToStringFn = DummyArgToStringFn; ArgToStringCookie = nullptr; @@ -63,18 +61,10 @@ DiagnosticsEngine::DiagnosticsEngine( Reset(); } -DiagnosticsEngine::~DiagnosticsEngine() { - if (OwnsDiagClient) - delete Client; -} - void DiagnosticsEngine::setClient(DiagnosticConsumer *client, bool ShouldOwnClient) { - if (OwnsDiagClient && Client) - delete Client; - + Owner.reset(ShouldOwnClient ? client : nullptr); Client = client; - OwnsDiagClient = ShouldOwnClient; } void DiagnosticsEngine::pushMappings(SourceLocation Loc) { |