Better encapsulate CFXA_TextLayout::m_pieceLines.

Rather than providing a method returning a reference to it, replace
that one use with a method that takes the desired get link url action
directly.

Change-Id: I06dcf6149459cbceb8155b956cdd68382d97e3e5
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/73431
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/cxfa_fftext.cpp b/xfa/fxfa/cxfa_fftext.cpp
index 34534be..a2d1797 100644
--- a/xfa/fxfa/cxfa_fftext.cpp
+++ b/xfa/fxfa/cxfa_fftext.cpp
@@ -151,13 +151,5 @@
     return nullptr;
 
   CFX_RectF rect = GetRectWithoutRotate();
-  for (const auto& pPieceLine : *pTextLayout->GetPieceLines()) {
-    for (const auto& pPiece : pPieceLine->m_textPieces) {
-      if (pPiece->pLinkData &&
-          pPiece->rtPiece.Contains(point - rect.TopLeft())) {
-        return pPiece->pLinkData->GetLinkURL();
-      }
-    }
-  }
-  return nullptr;
+  return pTextLayout->GetLinkURLAtPoint(point - rect.TopLeft());
 }
diff --git a/xfa/fxfa/cxfa_textlayout.cpp b/xfa/fxfa/cxfa_textlayout.cpp
index 3e60ea9..51678e8 100644
--- a/xfa/fxfa/cxfa_textlayout.cpp
+++ b/xfa/fxfa/cxfa_textlayout.cpp
@@ -98,6 +98,16 @@
   m_pBreak.reset();
 }
 
+const wchar_t* CXFA_TextLayout::GetLinkURLAtPoint(const CFX_PointF& point) {
+  for (const auto& pPieceLine : m_pieceLines) {
+    for (const auto& pPiece : pPieceLine->m_textPieces) {
+      if (pPiece->pLinkData && pPiece->rtPiece.Contains(point))
+        return pPiece->pLinkData->GetLinkURL();
+    }
+  }
+  return nullptr;
+}
+
 void CXFA_TextLayout::GetTextDataNode() {
   CXFA_Node* pNode = m_pTextProvider->GetTextNode(&m_bRichText);
   if (pNode && m_bRichText)
diff --git a/xfa/fxfa/cxfa_textlayout.h b/xfa/fxfa/cxfa_textlayout.h
index cb285de..ae813cb 100644
--- a/xfa/fxfa/cxfa_textlayout.h
+++ b/xfa/fxfa/cxfa_textlayout.h
@@ -59,14 +59,10 @@
                   size_t szBlockIndex);
   bool IsLoaded() const { return !m_pieceLines.empty(); }
   void Unload();
-
-  const std::vector<std::unique_ptr<CXFA_PieceLine>>* GetPieceLines() const {
-    return &m_pieceLines;
-  }
-
   bool HasBlock() const { return m_bHasBlock; }
   void ClearBlocks() { m_Blocks.clear(); }
   void ResetHasBlock() { m_bHasBlock = false; }
+  const wchar_t* GetLinkURLAtPoint(const CFX_PointF& point);
 
  private:
   struct BlockData {