diff --git a/xfa/fde/cfde_texteditengine.cpp b/xfa/fde/cfde_texteditengine.cpp
index 54d1663..49d2a8f 100644
--- a/xfa/fde/cfde_texteditengine.cpp
+++ b/xfa/fde/cfde_texteditengine.cpp
@@ -1072,7 +1072,7 @@
       txtEdtPiece.rtPiece.height = line_spacing_;
       txtEdtPiece.nStart =
           pdfium::base::checked_cast<int32_t>(current_piece_start);
-      txtEdtPiece.nCount = piece->GetLength();
+      txtEdtPiece.nCount = piece->GetCharCount();
       txtEdtPiece.nBidiLevel = piece->GetBidiLevel();
       txtEdtPiece.dwCharStyles = piece->GetCharStyles();
       if (FX_IsOdd(piece->GetBidiLevel()))
diff --git a/xfa/fde/cfde_textout.cpp b/xfa/fde/cfde_textout.cpp
index bdaf09e..1de901c 100644
--- a/xfa/fde/cfde_textout.cpp
+++ b/xfa/fde/cfde_textout.cpp
@@ -372,10 +372,10 @@
   int32_t iCount = m_pTxtBreak->CountBreakPieces();
   for (int32_t i = 0; i < iCount; i++) {
     const CFGAS_BreakPiece* pPiece = m_pTxtBreak->GetBreakPieceUnstable(i);
-    int32_t iPieceChars = pPiece->GetLength();
+    size_t iPieceChars = pPiece->GetLength();
     size_t iChar = *pStartChar;
     int32_t iWidth = 0;
-    int32_t j = 0;
+    size_t j = 0;
     for (; j < iPieceChars; j++) {
       const CFGAS_Char* pTC = pPiece->GetChar(j);
       int32_t iCurCharWidth = std::max(pTC->m_iCharWidth, 0);
diff --git a/xfa/fgas/layout/cfgas_breakpiece.cpp b/xfa/fgas/layout/cfgas_breakpiece.cpp
index cd6aa06..6d4a79c 100644
--- a/xfa/fgas/layout/cfgas_breakpiece.cpp
+++ b/xfa/fgas/layout/cfgas_breakpiece.cpp
@@ -6,7 +6,8 @@
 
 #include "xfa/fgas/layout/cfgas_breakpiece.h"
 
-#include "third_party/base/check.h"
+#include "third_party/base/check_op.h"
+#include "third_party/base/numerics/safe_conversions.h"
 #include "xfa/fgas/layout/cfgas_textuserdata.h"
 
 CFGAS_BreakPiece::CFGAS_BreakPiece() = default;
@@ -19,9 +20,16 @@
   return m_iWidth < 0 ? m_iStartPos : m_iStartPos + m_iWidth;
 }
 
+size_t CFGAS_BreakPiece::GetLength() const {
+  return pdfium::base::checked_cast<size_t>(m_iCharCount);
+}
+
 CFGAS_Char* CFGAS_BreakPiece::GetChar(int32_t index) const {
-  DCHECK(index >= 0);
-  DCHECK(index < m_iCharCount);
+  return GetChar(pdfium::base::checked_cast<size_t>(index));
+}
+
+CFGAS_Char* CFGAS_BreakPiece::GetChar(size_t index) const {
+  DCHECK_LT(index, GetLength());
   DCHECK(m_pChars);
   return &(*m_pChars)[m_iStartChar + index];
 }
diff --git a/xfa/fgas/layout/cfgas_breakpiece.h b/xfa/fgas/layout/cfgas_breakpiece.h
index b76cb5c..e2ae8dd 100644
--- a/xfa/fgas/layout/cfgas_breakpiece.h
+++ b/xfa/fgas/layout/cfgas_breakpiece.h
@@ -23,9 +23,12 @@
   ~CFGAS_BreakPiece();
 
   int32_t GetEndPos() const;
-  int32_t GetLength() const { return m_iCharCount; }
+
+  // TODO(thestig): When GetCharCount() returns size_t, remove this.
+  size_t GetLength() const;
 
   CFGAS_Char* GetChar(int32_t index) const;
+  CFGAS_Char* GetChar(size_t index) const;
   WideString GetString() const;
   std::vector<int32_t> GetWidths() const;
 
