summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/fpdftext/cpdf_textpage.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index e712549ceb..7315754919 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -237,15 +237,14 @@ int CPDF_TextPage::TextIndexFromCharIndex(int CharIndex) const {
std::vector<CFX_FloatRect> CPDF_TextPage::GetRectArray(int start,
int nCount) const {
+ std::vector<CFX_FloatRect> rects;
if (start < 0 || nCount == 0 || !m_bIsParsed)
- return std::vector<CFX_FloatRect>();
+ return rects;
- if (nCount + start > pdfium::CollectionSize<int>(m_CharList) ||
- nCount == -1) {
- nCount = pdfium::CollectionSize<int>(m_CharList) - start;
- }
+ const int nCharListSize = CountChars();
+ if (nCount < 0 || start + nCount > nCharListSize)
+ nCount = nCharListSize - start;
- std::vector<CFX_FloatRect> rectArray;
CPDF_TextObject* pCurObj = nullptr;
CFX_FloatRect rect;
int curPos = start;
@@ -261,7 +260,7 @@ std::vector<CFX_FloatRect> CPDF_TextPage::GetRectArray(int start,
if (!pCurObj)
pCurObj = info_curchar.m_pTextObj.Get();
if (pCurObj != info_curchar.m_pTextObj) {
- rectArray.push_back(rect);
+ rects.push_back(rect);
pCurObj = info_curchar.m_pTextObj.Get();
bFlagNewRect = true;
}
@@ -304,8 +303,8 @@ std::vector<CFX_FloatRect> CPDF_TextPage::GetRectArray(int start,
rect.bottom = std::min(rect.bottom, info_curchar.m_CharBox.bottom);
}
}
- rectArray.push_back(rect);
- return rectArray;
+ rects.push_back(rect);
+ return rects;
}
int CPDF_TextPage::GetIndexAtPos(const CFX_PointF& point,