Index: xfa/fee/fde_txtedtparag.cpp |
diff --git a/xfa/fee/fde_txtedtparag.cpp b/xfa/fee/fde_txtedtparag.cpp |
index f49f43147d283d3173270ec9c392662dcabcc5c2..4f5b5a15df4064946ed79764a56d5d7f90733a8f 100644 |
--- a/xfa/fee/fde_txtedtparag.cpp |
+++ b/xfa/fee/fde_txtedtparag.cpp |
@@ -37,8 +37,8 @@ void CFDE_TxtEdtParag::LoadParag() { |
if (pParam->dwMode & FDE_TEXTEDITMODE_Password) { |
wcAlias = m_pEngine->GetAliasChar(); |
} |
- IFX_CharIter* pIter = |
- new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pTxtBuf, wcAlias); |
+ std::unique_ptr<IFX_CharIter> pIter( |
+ new CFDE_TxtEdtBufIter(static_cast<CFDE_TxtEdtBuf*>(pTxtBuf), wcAlias)); |
pIter->SetAt(m_nCharStart); |
int32_t nEndIndex = m_nCharStart + m_nCharCount; |
CFX_ArrayTemplate<int32_t> LineBaseArr; |
@@ -71,7 +71,6 @@ void CFDE_TxtEdtParag::LoadParag() { |
pIter->Next(TRUE); |
} |
} while (pIter->Next(FALSE) && (pIter->GetAt() < nEndIndex)); |
- pIter->Release(); |
pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
pTxtBreak->ClearBreakPieces(); |
int32_t nLineCount = LineBaseArr.GetSize(); |
@@ -102,10 +101,11 @@ void CFDE_TxtEdtParag::UnloadParag() { |
void CFDE_TxtEdtParag::CalcLines() { |
CFX_TxtBreak* pTxtBreak = m_pEngine->GetTextBreak(); |
CFDE_TxtEdtBuf* pTxtBuf = m_pEngine->GetTextBuf(); |
- IFX_CharIter* pIter = new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pTxtBuf); |
int32_t nCount = 0; |
uint32_t dwBreakStatus = FX_TXTBREAK_None; |
int32_t nEndIndex = m_nCharStart + m_nCharCount; |
+ std::unique_ptr<IFX_CharIter> pIter( |
+ new CFDE_TxtEdtBufIter(static_cast<CFDE_TxtEdtBuf*>(pTxtBuf))); |
pIter->SetAt(m_nCharStart); |
FX_BOOL bReload = FALSE; |
do { |
@@ -129,7 +129,6 @@ void CFDE_TxtEdtParag::CalcLines() { |
pIter->Next(TRUE); |
} |
} while (pIter->Next(FALSE) && (pIter->GetAt() < nEndIndex)); |
- pIter->Release(); |
pTxtBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); |
pTxtBreak->ClearBreakPieces(); |
m_nLineCount = nCount; |