diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/fxcrt/cfx_chariter.cpp | 6 | ||||
-rw-r--r-- | core/fxcrt/cfx_chariter.h | 4 | ||||
-rw-r--r-- | core/fxcrt/cfx_wordbreak.cpp | 8 | ||||
-rw-r--r-- | core/fxcrt/ifx_chariter.h | 4 |
4 files changed, 14 insertions, 8 deletions
diff --git a/core/fxcrt/cfx_chariter.cpp b/core/fxcrt/cfx_chariter.cpp index c14db2f322..b726a7e484 100644 --- a/core/fxcrt/cfx_chariter.cpp +++ b/core/fxcrt/cfx_chariter.cpp @@ -6,6 +6,8 @@ #include "core/fxcrt/cfx_chariter.h" +#include "third_party/base/ptr_util.h" + CFX_CharIter::CFX_CharIter(const CFX_WideString& wsText) : m_wsText(wsText), m_nIndex(0) { ASSERT(!wsText.IsEmpty()); @@ -44,8 +46,8 @@ bool CFX_CharIter::IsEOF(bool bTail) const { return bTail ? (m_nIndex + 1 == m_wsText.GetLength()) : (m_nIndex == 0); } -IFX_CharIter* CFX_CharIter::Clone() { - CFX_CharIter* pIter = new CFX_CharIter(m_wsText); +std::unique_ptr<IFX_CharIter> CFX_CharIter::Clone() { + auto pIter = pdfium::MakeUnique<CFX_CharIter>(m_wsText); pIter->m_nIndex = m_nIndex; return pIter; } diff --git a/core/fxcrt/cfx_chariter.h b/core/fxcrt/cfx_chariter.h index 00a725ef75..50fdde879f 100644 --- a/core/fxcrt/cfx_chariter.h +++ b/core/fxcrt/cfx_chariter.h @@ -7,6 +7,8 @@ #ifndef CORE_FXCRT_CFX_CHARITER_H_ #define CORE_FXCRT_CFX_CHARITER_H_ +#include <memory> + #include "core/fxcrt/fx_string.h" #include "core/fxcrt/fx_system.h" #include "core/fxcrt/ifx_chariter.h" @@ -21,7 +23,7 @@ class CFX_CharIter : public IFX_CharIter { void SetAt(int32_t nIndex) override; int32_t GetAt() const override; bool IsEOF(bool bTail = true) const override; - IFX_CharIter* Clone() override; + std::unique_ptr<IFX_CharIter> Clone() override; private: const CFX_WideString& m_wsText; diff --git a/core/fxcrt/cfx_wordbreak.cpp b/core/fxcrt/cfx_wordbreak.cpp index c236f599f2..2a31181403 100644 --- a/core/fxcrt/cfx_wordbreak.cpp +++ b/core/fxcrt/cfx_wordbreak.cpp @@ -2793,8 +2793,8 @@ void CFX_WordBreak::Attach(const CFX_WideString& wsText) { } bool CFX_WordBreak::Next(bool bPrev) { - std::unique_ptr<IFX_CharIter> pIter( - (bPrev ? m_pPreIter : m_pCurIter)->Clone()); + std::unique_ptr<IFX_CharIter> pIter = + (bPrev ? m_pPreIter : m_pCurIter)->Clone(); if (pIter->IsEOF(!bPrev)) return false; @@ -2819,7 +2819,7 @@ void CFX_WordBreak::SetAt(int32_t nIndex) { m_pCurIter->SetAt(nIndex); FindNextBreakPos(m_pCurIter.get(), true, false); m_pPreIter = std::move(m_pCurIter); - m_pCurIter.reset(m_pPreIter->Clone()); + m_pCurIter = m_pPreIter->Clone(); FindNextBreakPos(m_pCurIter.get(), false, false); } @@ -2837,7 +2837,7 @@ void CFX_WordBreak::GetWord(CFX_WideString& wsWord) const { return; } wchar_t* lpBuf = wsWord.GetBuffer(nWordLength); - std::unique_ptr<IFX_CharIter> pTempIter(m_pPreIter->Clone()); + std::unique_ptr<IFX_CharIter> pTempIter = m_pPreIter->Clone(); int32_t i = 0; while (pTempIter->GetAt() <= m_pCurIter->GetAt()) { lpBuf[i++] = pTempIter->GetChar(); diff --git a/core/fxcrt/ifx_chariter.h b/core/fxcrt/ifx_chariter.h index 4435257cc9..b8e240953a 100644 --- a/core/fxcrt/ifx_chariter.h +++ b/core/fxcrt/ifx_chariter.h @@ -7,6 +7,8 @@ #ifndef CORE_FXCRT_IFX_CHARITER_H_ #define CORE_FXCRT_IFX_CHARITER_H_ +#include <memory> + #include "core/fxcrt/fx_system.h" class IFX_CharIter { @@ -18,7 +20,7 @@ class IFX_CharIter { virtual void SetAt(int32_t nIndex) = 0; virtual int32_t GetAt() const = 0; virtual bool IsEOF(bool bTail = true) const = 0; - virtual IFX_CharIter* Clone() = 0; + virtual std::unique_ptr<IFX_CharIter> Clone() = 0; }; #endif // CORE_FXCRT_IFX_CHARITER_H_ |