summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xfa/fde/cfde_txtedtpage.cpp21
-rw-r--r--xfa/fde/cfde_txtedtpage.h4
-rw-r--r--xfa/fde/fde_iterator.cpp16
-rw-r--r--xfa/fde/fde_iterator.h2
4 files changed, 22 insertions, 21 deletions
diff --git a/xfa/fde/cfde_txtedtpage.cpp b/xfa/fde/cfde_txtedtpage.cpp
index 4bf3e9fb5e..c3d21430bd 100644
--- a/xfa/fde/cfde_txtedtpage.cpp
+++ b/xfa/fde/cfde_txtedtpage.cpp
@@ -412,24 +412,25 @@ const CFX_RectF& CFDE_TxtEdtPage::GetContentsBox() {
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 d2496195a5..2cae7ce4ab 100644
--- a/xfa/fde/cfde_txtedtpage.h
+++ b/xfa/fde/cfde_txtedtpage.h
@@ -46,8 +46,8 @@ class CFDE_TxtEdtPage : public IFDE_VisualSet {
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 e9a644043d..ff4fc0e73c 100644
--- a/xfa/fde/fde_iterator.cpp
+++ b/xfa/fde/fde_iterator.cpp
@@ -19,8 +19,8 @@ bool CFDE_VisualSetIterator::AttachCanvas(CFDE_TxtEdtPage* pCanvas) {
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 @@ bool CFDE_VisualSetIterator::FilterObjects(uint32_t dwObjects) {
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 @@ FDE_TEXTEDITPIECE* CFDE_VisualSetIterator::GetNext(
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 @@ FDE_TEXTEDITPIECE* CFDE_VisualSetIterator::GetNext(
}
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_TEXTEDITPIECE* CFDE_VisualSetIterator::GetNext(
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 @@ FDE_TEXTEDITPIECE* CFDE_VisualSetIterator::GetNext(
*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 95785e448d..99f9597aa5 100644
--- a/xfa/fde/fde_iterator.h
+++ b/xfa/fde/fde_iterator.h
@@ -16,7 +16,7 @@ class CFDE_TxtEdtPage;
struct FDE_CANVASITEM {
CFDE_TxtEdtPage* pCanvas;
FDE_TEXTEDITPIECE* hCanvas;
- FX_POSITION hPos;
+ size_t pos;
};
class CFDE_VisualSetIterator {