| Index: xfa/fde/cfde_txtedtpage.cpp
|
| diff --git a/xfa/fde/cfde_txtedtpage.cpp b/xfa/fde/cfde_txtedtpage.cpp
|
| index a31997fc652e62c666a8bfec3b082d86359578e0..21420998d492194540e5f0e286285fc58c9537ba 100644
|
| --- a/xfa/fde/cfde_txtedtpage.cpp
|
| +++ b/xfa/fde/cfde_txtedtpage.cpp
|
| @@ -29,7 +29,7 @@ IFDE_TxtEdtPage* IFDE_TxtEdtPage::Create(CFDE_TxtEdtEngine* pEngine,
|
| }
|
|
|
| CFDE_TxtEdtPage::CFDE_TxtEdtPage(CFDE_TxtEdtEngine* pEngine, int32_t nPageIndex)
|
| - : m_pTextSet(nullptr),
|
| + : m_pEditEngine(pEngine),
|
| m_PieceMassArr(100),
|
| m_pBgnParag(nullptr),
|
| m_pEndParag(nullptr),
|
| @@ -37,19 +37,15 @@ CFDE_TxtEdtPage::CFDE_TxtEdtPage(CFDE_TxtEdtEngine* pEngine, int32_t nPageIndex)
|
| m_nPageStart(-1),
|
| m_nCharCount(0),
|
| m_nPageIndex(nPageIndex),
|
| - m_bLoaded(FALSE),
|
| - m_pCharWidth(nullptr) {
|
| + m_bLoaded(FALSE) {
|
| FXSYS_memset(&m_rtPage, 0, sizeof(CFX_RectF));
|
| FXSYS_memset(&m_rtPageMargin, 0, sizeof(CFX_RectF));
|
| FXSYS_memset(&m_rtPageContents, 0, sizeof(CFX_RectF));
|
| FXSYS_memset(&m_rtPageCanvas, 0, sizeof(CFX_RectF));
|
| - m_pEditEngine = static_cast<CFDE_TxtEdtEngine*>(pEngine);
|
| }
|
|
|
| CFDE_TxtEdtPage::~CFDE_TxtEdtPage() {
|
| m_PieceMassArr.RemoveAll(TRUE);
|
| - delete m_pTextSet;
|
| - delete[] m_pCharWidth;
|
| }
|
|
|
| CFDE_TxtEdtEngine* CFDE_TxtEdtPage::GetEngine() const {
|
| @@ -308,14 +304,13 @@ int32_t CFDE_TxtEdtPage::LoadPage(const CFX_RectF* pClipBox,
|
| (bVertial && bLineReserve) ? (-pParams->fLineSpace) : pParams->fLineSpace;
|
| FX_FLOAT fLinePos = fLineStart;
|
| if (!m_pTextSet)
|
| - m_pTextSet = new CFDE_TxtEdtTextSet(this);
|
| + m_pTextSet.reset(new CFDE_TxtEdtTextSet(this));
|
|
|
| m_PieceMassArr.RemoveAll(TRUE);
|
| uint32_t dwBreakStatus = FX_TXTBREAK_None;
|
| int32_t nPieceStart = 0;
|
| - delete[] m_pCharWidth;
|
|
|
| - m_pCharWidth = new int32_t[nPageEnd - nPageStart + 1];
|
| + m_CharWidths.resize(nPageEnd - nPageStart + 1, 0);
|
| pBreak->EndBreak(FX_TXTBREAK_ParagraphBreak);
|
| pBreak->ClearBreakPieces();
|
| m_nPageStart = nPageStart;
|
| @@ -394,7 +389,7 @@ int32_t CFDE_TxtEdtPage::LoadPage(const CFX_RectF* pClipBox,
|
| m_PieceMassArr.Add(TxtEdtPiece);
|
| for (int32_t k = 0; k < TxtEdtPiece.nCount; k++) {
|
| CFX_Char* ptc = pPiece->GetCharPtr(k);
|
| - m_pCharWidth[TxtEdtPiece.nStart + k] = ptc->m_iCharWidth;
|
| + m_CharWidths[TxtEdtPiece.nStart + k] = ptc->m_iCharWidth;
|
| }
|
| }
|
| fLinePos += fLineStep;
|
| @@ -448,10 +443,8 @@ void CFDE_TxtEdtPage::UnloadPage(const CFX_RectF* pClipBox) {
|
| return;
|
|
|
| m_PieceMassArr.RemoveAll(FALSE);
|
| - delete m_pTextSet;
|
| - m_pTextSet = nullptr;
|
| - delete[] m_pCharWidth;
|
| - m_pCharWidth = nullptr;
|
| + m_pTextSet.reset();
|
| + m_CharWidths.clear();
|
| if (m_pBgnParag) {
|
| m_pBgnParag->UnloadParag();
|
| m_pBgnParag = nullptr;
|
| @@ -480,7 +473,7 @@ FDE_TEXTEDITPIECE* CFDE_TxtEdtPage::GetNext(FX_POSITION& pos,
|
| return nullptr;
|
| }
|
| int32_t nPos = (int32_t)(uintptr_t)pos;
|
| - pVisualSet = m_pTextSet;
|
| + pVisualSet = m_pTextSet.get();
|
| if (nPos + 1 > m_PieceMassArr.GetSize()) {
|
| pos = nullptr;
|
| } else {
|
| @@ -502,7 +495,7 @@ FX_WCHAR CFDE_TxtEdtPage::GetChar(const FDE_TEXTEDITPIECE* pIdentity,
|
|
|
| int32_t CFDE_TxtEdtPage::GetWidth(const FDE_TEXTEDITPIECE* pIdentity,
|
| int32_t index) const {
|
| - int32_t nWidth = m_pCharWidth[pIdentity->nStart + index];
|
| + int32_t nWidth = m_CharWidths[pIdentity->nStart + index];
|
| return nWidth;
|
| }
|
|
|
|
|