summaryrefslogtreecommitdiff
path: root/core/fxcrt
diff options
context:
space:
mode:
Diffstat (limited to 'core/fxcrt')
-rw-r--r--core/fxcrt/cfx_chariter.cpp6
-rw-r--r--core/fxcrt/cfx_chariter.h4
-rw-r--r--core/fxcrt/cfx_wordbreak.cpp8
-rw-r--r--core/fxcrt/ifx_chariter.h4
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_