From 8898dd74337c8fb7ac76e157f9afee38ffbe1438 Mon Sep 17 00:00:00 2001 From: mitchell Date: Sun, 5 Apr 2020 16:04:05 -0400 Subject: Backport: Pass argument as unique_ptr to show transfer of ownership. Add const and noexcept. Backport of changeset 8106:f26e186e80a9. --- src/Document.cxx | 6 +++--- src/Document.h | 4 ++-- src/ScintillaBase.cxx | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/Document.cxx b/src/Document.cxx index d85b71106..6670bbdb3 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -2265,12 +2265,12 @@ void Document::LexerChanged() { } } -LexInterface *Document::GetLexInterface() const { +LexInterface *Document::GetLexInterface() const noexcept { return pli.get(); } -void Document::SetLexInterface(LexInterface *pLexInterface) { - pli.reset(pLexInterface); +void Document::SetLexInterface(std::unique_ptr pLexInterface) noexcept { + pli = std::move(pLexInterface); } int SCI_METHOD Document::SetLineState(Sci_Position line, int state) { diff --git a/src/Document.h b/src/Document.h index f105e825a..efce835d4 100644 --- a/src/Document.h +++ b/src/Document.h @@ -459,8 +459,8 @@ public: void IncrementStyleClock() noexcept; void SCI_METHOD DecorationSetCurrentIndicator(int indicator) override; void SCI_METHOD DecorationFillRange(Sci_Position position, int value, Sci_Position fillLength) override; - LexInterface *GetLexInterface() const; - void SetLexInterface(LexInterface *pLexInterface); + LexInterface *GetLexInterface() const noexcept; + void SetLexInterface(std::unique_ptr pLexInterface) noexcept; int SCI_METHOD SetLineState(Sci_Position line, int state) override; int SCI_METHOD GetLineState(Sci_Position line) const override; diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 0975028f3..082cb82d5 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -615,7 +615,7 @@ LexState::~LexState() { LexState *ScintillaBase::DocumentLexState() { if (!pdoc->GetLexInterface()) { - pdoc->SetLexInterface(new LexState(pdoc)); + pdoc->SetLexInterface(Sci::make_unique(pdoc)); } return dynamic_cast(pdoc->GetLexInterface()); } -- cgit v1.2.3