Replace CFDE_TxtEdtPage FX_POSITION usage with uint32_t Change-Id: I8cd68aaeb3c1f7ba92f32bc4846bf2e7d02111e4 Reviewed-on: https://pdfium-review.googlesource.com/3033 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Nicolás Peña <npm@chromium.org>
diff --git a/xfa/fde/cfde_txtedtpage.cpp b/xfa/fde/cfde_txtedtpage.cpp index 4bf3e9f..c3d2143 100644 --- a/xfa/fde/cfde_txtedtpage.cpp +++ b/xfa/fde/cfde_txtedtpage.cpp
@@ -412,24 +412,25 @@ return m_rtPageContents; } -FX_POSITION CFDE_TxtEdtPage::GetFirstPosition() { - if (m_Pieces.empty()) - return nullptr; - return (FX_POSITION)1; +size_t CFDE_TxtEdtPage::GetFirstPosition() { + return m_Pieces.empty() ? 0 : 1; } -FDE_TEXTEDITPIECE* CFDE_TxtEdtPage::GetNext(FX_POSITION& pos, +FDE_TEXTEDITPIECE* CFDE_TxtEdtPage::GetNext(size_t* pos, IFDE_VisualSet*& pVisualSet) { + ASSERT(pos); + if (!m_pTextSet) { - pos = nullptr; + *pos = 0; return nullptr; } - int32_t nPos = (int32_t)(uintptr_t)pos; + + size_t nPos = *pos; pVisualSet = m_pTextSet.get(); - if (nPos + 1 > pdfium::CollectionSize<int32_t>(m_Pieces)) - pos = nullptr; + if (nPos + 1 > m_Pieces.size()) + *pos = 0; else - pos = (FX_POSITION)(uintptr_t)(nPos + 1); + *pos = nPos + 1; return &m_Pieces[nPos - 1]; }
diff --git a/xfa/fde/cfde_txtedtpage.h b/xfa/fde/cfde_txtedtpage.h index d249619..2cae7ce 100644 --- a/xfa/fde/cfde_txtedtpage.h +++ b/xfa/fde/cfde_txtedtpage.h
@@ -46,8 +46,8 @@ void UnloadPage(const CFX_RectF* pClipBox); const CFX_RectF& GetContentsBox(); - FX_POSITION GetFirstPosition(); - FDE_TEXTEDITPIECE* GetNext(FX_POSITION& pos, IFDE_VisualSet*& pVisualSet); + size_t GetFirstPosition(); + FDE_TEXTEDITPIECE* GetNext(size_t* pos, IFDE_VisualSet*& pVisualSet); wchar_t GetChar(const FDE_TEXTEDITPIECE* pIdentity, int32_t index) const; int32_t GetWidth(const FDE_TEXTEDITPIECE* pIdentity, int32_t index) const;
diff --git a/xfa/fde/fde_iterator.cpp b/xfa/fde/fde_iterator.cpp index e9a6440..ff4fc0e 100644 --- a/xfa/fde/fde_iterator.cpp +++ b/xfa/fde/fde_iterator.cpp
@@ -19,8 +19,8 @@ FDE_CANVASITEM canvas; canvas.hCanvas = nullptr; canvas.pCanvas = pCanvas; - canvas.hPos = pCanvas->GetFirstPosition(); - if (!canvas.hPos) + canvas.pos = pCanvas->GetFirstPosition(); + if (canvas.pos == 0) return false; m_CanvasStack.push(canvas); @@ -39,8 +39,8 @@ FDE_CANVASITEM* pCanvas = &m_CanvasStack.top(); ASSERT(pCanvas && pCanvas->pCanvas); - pCanvas->hPos = pCanvas->pCanvas->GetFirstPosition(); - return !!pCanvas->hPos; + pCanvas->pos = pCanvas->pCanvas->GetFirstPosition(); + return pCanvas->pos != 0; } void CFDE_VisualSetIterator::Reset() { @@ -53,7 +53,7 @@ CFDE_TxtEdtPage** ppCanvasSet) { while (!m_CanvasStack.empty()) { FDE_CANVASITEM* pCanvas = &m_CanvasStack.top(); - if (!pCanvas->hPos) { + if (pCanvas->pos == 0) { if (m_CanvasStack.size() == 1) break; @@ -62,7 +62,7 @@ } do { FDE_TEXTEDITPIECE* pObj = - pCanvas->pCanvas->GetNext(pCanvas->hPos, pVisualSet); + pCanvas->pCanvas->GetNext(&pCanvas->pos, pVisualSet); ASSERT(pObj); FDE_VISUALOBJTYPE eType = pVisualSet->GetType(); @@ -70,7 +70,7 @@ FDE_CANVASITEM canvas; canvas.hCanvas = pObj; canvas.pCanvas = static_cast<CFDE_TxtEdtPage*>(pVisualSet); - canvas.hPos = canvas.pCanvas->GetFirstPosition(); + canvas.pos = canvas.pCanvas->GetFirstPosition(); m_CanvasStack.push(canvas); break; } @@ -82,7 +82,7 @@ *phCanvasObj = pCanvas->hCanvas; return pObj; } - } while (pCanvas->hPos); + } while (pCanvas->pos != 0); } if (ppCanvasSet) *ppCanvasSet = nullptr;
diff --git a/xfa/fde/fde_iterator.h b/xfa/fde/fde_iterator.h index 95785e4..99f9597 100644 --- a/xfa/fde/fde_iterator.h +++ b/xfa/fde/fde_iterator.h
@@ -16,7 +16,7 @@ struct FDE_CANVASITEM { CFDE_TxtEdtPage* pCanvas; FDE_TEXTEDITPIECE* hCanvas; - FX_POSITION hPos; + size_t pos; }; class CFDE_VisualSetIterator {