Remove checks for impossible situations in CPDF_TextPageFind.

Also remove a new keyword use when constructing CPDF_TextPageFind.

Change-Id: I1e2fee4e5d5f5710ebbabf415eb164e4d1cec5c7
Reviewed-on: https://pdfium-review.googlesource.com/c/34852
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdftext/cpdf_textpagefind.cpp b/core/fpdftext/cpdf_textpagefind.cpp
index b431f5d..d5c96bc 100644
--- a/core/fpdftext/cpdf_textpagefind.cpp
+++ b/core/fpdftext/cpdf_textpagefind.cpp
@@ -36,6 +36,8 @@
 
 CPDF_TextPageFind::CPDF_TextPageFind(const CPDF_TextPage* pTextPage)
     : m_pTextPage(pTextPage) {
+  ASSERT(m_pTextPage);
+
   m_strText = m_pTextPage->GetAllPageText();
   int nCount = pTextPage->CountChars();
   if (nCount)
@@ -77,8 +79,6 @@
 bool CPDF_TextPageFind::FindFirst(const WideString& findwhat,
                                   const Options& options,
                                   Optional<size_t> startPos) {
-  if (!m_pTextPage)
-    return false;
   if (m_strText.IsEmpty() || m_bMatchCase != options.bMatchCase)
     m_strText = m_pTextPage->GetAllPageText();
   WideString findwhatStr = findwhat;
@@ -122,8 +122,6 @@
 }
 
 bool CPDF_TextPageFind::FindNext() {
-  if (!m_pTextPage)
-    return false;
   m_resArray.clear();
   if (!m_findNextStart.has_value())
     return false;
@@ -223,8 +221,6 @@
 }
 
 bool CPDF_TextPageFind::FindPrev() {
-  if (!m_pTextPage)
-    return false;
   m_resArray.clear();
   if (m_strText.IsEmpty() || !m_findPreStart.has_value()) {
     m_IsFind = false;
diff --git a/fpdfsdk/fpdf_text.cpp b/fpdfsdk/fpdf_text.cpp
index 37eba57..939dd01 100644
--- a/fpdfsdk/fpdf_text.cpp
+++ b/fpdfsdk/fpdf_text.cpp
@@ -269,8 +269,6 @@
   return size;
 }
 
-// Search
-// -1 for end
 FPDF_EXPORT FPDF_SCHHANDLE FPDF_CALLCONV
 FPDFText_FindStart(FPDF_TEXTPAGE text_page,
                    FPDF_WIDESTRING findwhat,
@@ -283,12 +281,13 @@
   options.bMatchCase = !!(flags & FPDF_MATCHCASE);
   options.bMatchWholeWord = !!(flags & FPDF_MATCHWHOLEWORD);
   options.bConsecutive = !!(flags & FPDF_CONSECUTIVE);
-  CPDF_TextPageFind* textpageFind =
-      new CPDF_TextPageFind(CPDFTextPageFromFPDFTextPage(text_page));
-  textpageFind->FindFirst(
+  auto find = pdfium::MakeUnique<CPDF_TextPageFind>(
+      CPDFTextPageFromFPDFTextPage(text_page));
+  find->FindFirst(
       WideStringFromFPDFWideString(findwhat), options,
       start_index >= 0 ? Optional<size_t>(start_index) : pdfium::nullopt);
-  return FPDFSchHandleFromCPDFTextPageFind(textpageFind);
+  // Caller takes ownership.
+  return FPDFSchHandleFromCPDFTextPageFind(find.release());
 }
 
 FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFText_FindNext(FPDF_SCHHANDLE handle) {