Convert from FPDF_TEXTPAGE to CPDF_TextPage earlier in fpdf_text.cpp.
Change-Id: I4ee2a05b609fe7968f885b7d3921e18a490bb947
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/72210
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/fpdf_text.cpp b/fpdfsdk/fpdf_text.cpp
index 4ea780e..1c0364d 100644
--- a/fpdfsdk/fpdf_text.cpp
+++ b/fpdfsdk/fpdf_text.cpp
@@ -61,11 +61,8 @@
}
FPDF_EXPORT int FPDF_CALLCONV FPDFText_CountChars(FPDF_TEXTPAGE text_page) {
- if (!text_page)
- return -1;
-
CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
- return textpage->CountChars();
+ return textpage ? textpage->CountChars() : -1;
}
FPDF_EXPORT unsigned int FPDF_CALLCONV
@@ -317,10 +314,10 @@
double y,
double xTolerance,
double yTolerance) {
- if (!text_page)
+ CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
+ if (!textpage)
return -3;
- CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
return textpage->GetIndexAtPos(
CFX_PointF(static_cast<float>(x), static_cast<float>(y)),
CFX_SizeF(static_cast<float>(xTolerance),
@@ -331,10 +328,10 @@
int start_index,
int char_count,
unsigned short* result) {
- if (!page || start_index < 0 || char_count < 0 || !result)
+ CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(page);
+ if (!textpage || start_index < 0 || char_count < 0 || !result)
return 0;
- CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(page);
int char_available = textpage->CountChars() - start_index;
if (char_available <= 0)
return 0;
@@ -365,11 +362,8 @@
FPDF_EXPORT int FPDF_CALLCONV FPDFText_CountRects(FPDF_TEXTPAGE text_page,
int start,
int count) {
- if (!text_page)
- return 0;
-
CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
- return textpage->CountRects(start, count);
+ return textpage ? textpage->CountRects(start, count) : 0;
}
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFText_GetRect(FPDF_TEXTPAGE text_page,
@@ -378,10 +372,10 @@
double* top,
double* right,
double* bottom) {
- if (!text_page)
+ CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
+ if (!textpage)
return false;
- CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
CFX_FloatRect rect;
bool result = textpage->GetRect(rect_index, &rect);
@@ -399,10 +393,10 @@
double bottom,
unsigned short* buffer,
int buflen) {
- if (!text_page)
+ CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
+ if (!textpage)
return 0;
- CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
CFX_FloatRect rect((float)left, (float)bottom, (float)right, (float)top);
WideString str = textpage->GetTextByRect(rect);
@@ -423,7 +417,8 @@
FPDF_WIDESTRING findwhat,
unsigned long flags,
int start_index) {
- if (!text_page)
+ CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
+ if (!textpage)
return nullptr;
CPDF_TextPageFind::Options options;
@@ -431,8 +426,7 @@
options.bMatchWholeWord = !!(flags & FPDF_MATCHWHOLEWORD);
options.bConsecutive = !!(flags & FPDF_CONSECUTIVE);
auto find = CPDF_TextPageFind::Create(
- CPDFTextPageFromFPDFTextPage(text_page),
- WideStringFromFPDFWideString(findwhat), options,
+ textpage, WideStringFromFPDFWideString(findwhat), options,
start_index >= 0 ? Optional<size_t>(start_index) : pdfium::nullopt);
// Caller takes ownership.
@@ -484,15 +478,15 @@
// web link
FPDF_EXPORT FPDF_PAGELINK FPDF_CALLCONV
FPDFLink_LoadWebLinks(FPDF_TEXTPAGE text_page) {
- if (!text_page)
+ CPDF_TextPage* textpage = CPDFTextPageFromFPDFTextPage(text_page);
+ if (!textpage)
return nullptr;
- CPDF_TextPage* pPage = CPDFTextPageFromFPDFTextPage(text_page);
- auto pageLink = std::make_unique<CPDF_LinkExtract>(pPage);
- pageLink->ExtractLinks();
+ auto pagelink = std::make_unique<CPDF_LinkExtract>(textpage);
+ pagelink->ExtractLinks();
// Caller takes ownership.
- return FPDFPageLinkFromCPDFLinkExtract(pageLink.release());
+ return FPDFPageLinkFromCPDFLinkExtract(pagelink.release());
}
FPDF_EXPORT int FPDF_CALLCONV FPDFLink_CountWebLinks(FPDF_PAGELINK link_page) {