Convert int to size_t in fpdf_sysfontinfo.cpp

Then widen all the way down into called functions.

-- Fix some pre-existing IWYU.
-- Make one format specifier unsigned

Change-Id: I5014420e94dc6f716185458791574b9eac59f470
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/91130
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxge/cfx_folderfontinfo.cpp b/core/fxge/cfx_folderfontinfo.cpp
index 8df44f5..8da1719 100644
--- a/core/fxge/cfx_folderfontinfo.cpp
+++ b/core/fxge/cfx_folderfontinfo.cpp
@@ -359,9 +359,9 @@
   return it != m_FontList.end() ? it->second.get() : nullptr;
 }
 
-uint32_t CFX_FolderFontInfo::GetFontData(void* hFont,
-                                         uint32_t table,
-                                         pdfium::span<uint8_t> buffer) {
+size_t CFX_FolderFontInfo::GetFontData(void* hFont,
+                                       uint32_t table,
+                                       pdfium::span<uint8_t> buffer) {
   if (!hFont)
     return 0;
 
diff --git a/core/fxge/cfx_folderfontinfo.h b/core/fxge/cfx_folderfontinfo.h
index d1ce84a..e99a4be 100644
--- a/core/fxge/cfx_folderfontinfo.h
+++ b/core/fxge/cfx_folderfontinfo.h
@@ -38,9 +38,9 @@
                 int pitch_family,
                 const ByteString& face) override;
   void* GetFont(const ByteString& face) override;
-  uint32_t GetFontData(void* hFont,
-                       uint32_t table,
-                       pdfium::span<uint8_t> buffer) override;
+  size_t GetFontData(void* hFont,
+                     uint32_t table,
+                     pdfium::span<uint8_t> buffer) override;
   void DeleteFont(void* hFont) override;
   bool GetFaceName(void* hFont, ByteString* name) override;
   bool GetFontCharset(void* hFont, FX_Charset* charset) override;
diff --git a/core/fxge/cfx_fontmapper.cpp b/core/fxge/cfx_fontmapper.cpp
index 7a5694d..af21273 100644
--- a/core/fxge/cfx_fontmapper.cpp
+++ b/core/fxge/cfx_fontmapper.cpp
@@ -301,12 +301,12 @@
 }
 
 ByteString CFX_FontMapper::GetPSNameFromTT(void* hFont) {
-  uint32_t size = m_pFontInfo->GetFontData(hFont, kTableNAME, {});
+  size_t size = m_pFontInfo->GetFontData(hFont, kTableNAME, {});
   if (!size)
     return ByteString();
 
   std::vector<uint8_t, FxAllocAllocator<uint8_t>> buffer(size);
-  uint32_t bytes_read = m_pFontInfo->GetFontData(hFont, kTableNAME, buffer);
+  size_t bytes_read = m_pFontInfo->GetFontData(hFont, kTableNAME, buffer);
   return bytes_read == size ? GetNameFromTT(buffer, 6) : ByteString();
 }
 
@@ -639,8 +639,8 @@
   m_pFontInfo->GetFaceName(hFont, &SubstName);
   if (Charset == FX_Charset::kDefault)
     m_pFontInfo->GetFontCharset(hFont, &Charset);
-  uint32_t ttc_size = m_pFontInfo->GetFontData(hFont, kTableTTCF, {});
-  uint32_t font_size = m_pFontInfo->GetFontData(hFont, 0, {});
+  size_t ttc_size = m_pFontInfo->GetFontData(hFont, kTableTTCF, {});
+  size_t font_size = m_pFontInfo->GetFontData(hFont, 0, {});
   if (font_size == 0 && ttc_size == 0) {
     m_pFontInfo->DeleteFont(hFont);
     return nullptr;
@@ -726,7 +726,7 @@
   if (!hFont)
     return nullptr;
 
-  uint32_t required_size = m_pFontInfo->GetFontData(hFont, 0, {});
+  size_t required_size = m_pFontInfo->GetFontData(hFont, 0, {});
   if (required_size == 0)
     return nullptr;
 
@@ -739,8 +739,8 @@
 #endif  // PDF_ENABLE_XFA
 
 RetainPtr<CFX_Face> CFX_FontMapper::GetCachedTTCFace(void* hFont,
-                                                     uint32_t ttc_size,
-                                                     uint32_t font_size) {
+                                                     size_t ttc_size,
+                                                     size_t data_size) {
   uint32_t checksum = GetChecksumFromTT(hFont);
   RetainPtr<CFX_FontMgr::FontDesc> pFontDesc =
       m_pFontMgr->GetCachedTTCFontDesc(ttc_size, checksum);
@@ -751,9 +751,9 @@
     pFontDesc = m_pFontMgr->AddCachedTTCFontDesc(
         ttc_size, checksum, std::move(pFontData), ttc_size);
   }
-  DCHECK(ttc_size >= font_size);
-  uint32_t font_offset = ttc_size - font_size;
-  int face_index =
+  CHECK(ttc_size >= data_size);
+  size_t font_offset = ttc_size - data_size;
+  size_t face_index =
       GetTTCIndex(pFontDesc->FontData().first(ttc_size), font_offset);
   RetainPtr<CFX_Face> pFace(pFontDesc->GetFace(face_index));
   if (pFace)
@@ -772,22 +772,22 @@
                                                   ByteString SubstName,
                                                   int weight,
                                                   bool bItalic,
-                                                  uint32_t font_size) {
+                                                  size_t data_size) {
   RetainPtr<CFX_FontMgr::FontDesc> pFontDesc =
       m_pFontMgr->GetCachedFontDesc(SubstName, weight, bItalic);
   if (!pFontDesc) {
     std::unique_ptr<uint8_t, FxFreeDeleter> pFontData(
-        FX_Alloc(uint8_t, font_size));
-    m_pFontInfo->GetFontData(hFont, 0, {pFontData.get(), font_size});
+        FX_Alloc(uint8_t, data_size));
+    m_pFontInfo->GetFontData(hFont, 0, {pFontData.get(), data_size});
     pFontDesc = m_pFontMgr->AddCachedFontDesc(SubstName, weight, bItalic,
-                                              std::move(pFontData), font_size);
+                                              std::move(pFontData), data_size);
   }
   RetainPtr<CFX_Face> pFace(pFontDesc->GetFace(0));
   if (pFace)
     return pFace;
 
   pFace = m_pFontMgr->NewFixedFace(pFontDesc,
-                                   pFontDesc->FontData().first(font_size), 0);
+                                   pFontDesc->FontData().first(data_size), 0);
   if (!pFace)
     return nullptr;
 
diff --git a/core/fxge/cfx_fontmapper.h b/core/fxge/cfx_fontmapper.h
index 183e59c..2ad6c3e 100644
--- a/core/fxge/cfx_fontmapper.h
+++ b/core/fxge/cfx_fontmapper.h
@@ -98,13 +98,13 @@
                                        int weight,
                                        int pitch_family);
   RetainPtr<CFX_Face> GetCachedTTCFace(void* hFont,
-                                       uint32_t ttc_size,
-                                       uint32_t font_size);
+                                       size_t ttc_size,
+                                       size_t data_size);
   RetainPtr<CFX_Face> GetCachedFace(void* hFont,
                                     ByteString SubstName,
                                     int weight,
                                     bool bItalic,
-                                    uint32_t font_size);
+                                    size_t data_size);
 
   struct FaceData {
     ByteString name;
diff --git a/core/fxge/cfx_fontmgr.cpp b/core/fxge/cfx_fontmgr.cpp
index 8513001..0775982 100644
--- a/core/fxge/cfx_fontmgr.cpp
+++ b/core/fxge/cfx_fontmgr.cpp
@@ -57,8 +57,8 @@
   return key;
 }
 
-ByteString KeyNameFromSize(int ttc_size, uint32_t checksum) {
-  return ByteString::Format("%d:%d", ttc_size, checksum);
+ByteString KeyNameFromSize(size_t ttc_size, uint32_t checksum) {
+  return ByteString::Format("%zu:%u", ttc_size, checksum);
 }
 
 FXFT_LibraryRec* FTLibraryInitHelper() {
@@ -106,24 +106,24 @@
     int weight,
     bool bItalic,
     std::unique_ptr<uint8_t, FxFreeDeleter> pData,
-    uint32_t size) {
+    size_t size) {
   auto pFontDesc = pdfium::MakeRetain<FontDesc>(std::move(pData), size);
   m_FaceMap[KeyNameFromFace(face_name, weight, bItalic)].Reset(pFontDesc.Get());
   return pFontDesc;
 }
 
 RetainPtr<CFX_FontMgr::FontDesc> CFX_FontMgr::GetCachedTTCFontDesc(
-    int ttc_size,
+    size_t ttc_size,
     uint32_t checksum) {
   auto it = m_FaceMap.find(KeyNameFromSize(ttc_size, checksum));
   return it != m_FaceMap.end() ? pdfium::WrapRetain(it->second.Get()) : nullptr;
 }
 
 RetainPtr<CFX_FontMgr::FontDesc> CFX_FontMgr::AddCachedTTCFontDesc(
-    int ttc_size,
+    size_t ttc_size,
     uint32_t checksum,
     std::unique_ptr<uint8_t, FxFreeDeleter> pData,
-    uint32_t size) {
+    size_t size) {
   auto pNewDesc = pdfium::MakeRetain<FontDesc>(std::move(pData), size);
   m_FaceMap[KeyNameFromSize(ttc_size, checksum)].Reset(pNewDesc.Get());
   return pNewDesc;
@@ -131,9 +131,9 @@
 
 RetainPtr<CFX_Face> CFX_FontMgr::NewFixedFace(const RetainPtr<FontDesc>& pDesc,
                                               pdfium::span<const uint8_t> span,
-                                              int face_index) {
-  RetainPtr<CFX_Face> face =
-      CFX_Face::New(m_FTLibrary.get(), pDesc, span, face_index);
+                                              size_t face_index) {
+  RetainPtr<CFX_Face> face = CFX_Face::New(m_FTLibrary.get(), pDesc, span,
+                                           static_cast<FT_Long>(face_index));
   if (!face)
     return nullptr;
 
diff --git a/core/fxge/cfx_fontmgr.h b/core/fxge/cfx_fontmgr.h
index d53d1e6..83ee22c 100644
--- a/core/fxge/cfx_fontmgr.h
+++ b/core/fxge/cfx_fontmgr.h
@@ -7,6 +7,9 @@
 #ifndef CORE_FXGE_CFX_FONTMGR_H_
 #define CORE_FXGE_CFX_FONTMGR_H_
 
+#include <stddef.h>
+#include <stdint.h>
+
 #include <map>
 #include <memory>
 
@@ -57,18 +60,18 @@
       int weight,
       bool bItalic,
       std::unique_ptr<uint8_t, FxFreeDeleter> pData,
-      uint32_t size);
+      size_t size);
 
-  RetainPtr<FontDesc> GetCachedTTCFontDesc(int ttc_size, uint32_t checksum);
+  RetainPtr<FontDesc> GetCachedTTCFontDesc(size_t ttc_size, uint32_t checksum);
   RetainPtr<FontDesc> AddCachedTTCFontDesc(
-      int ttc_size,
+      size_t ttc_size,
       uint32_t checksum,
       std::unique_ptr<uint8_t, FxFreeDeleter> pData,
-      uint32_t size);
+      size_t size);
 
   RetainPtr<CFX_Face> NewFixedFace(const RetainPtr<FontDesc>& pDesc,
                                    pdfium::span<const uint8_t> span,
-                                   int face_index);
+                                   size_t face_index);
 
   // Always present.
   CFX_FontMapper* GetBuiltinMapper() const { return m_pBuiltinMapper.get(); }
diff --git a/core/fxge/fx_font.cpp b/core/fxge/fx_font.cpp
index a80aeda91..4f5ea68 100644
--- a/core/fxge/fx_font.cpp
+++ b/core/fxge/fx_font.cpp
@@ -130,11 +130,10 @@
   return ByteString();
 }
 
-int GetTTCIndex(pdfium::span<const uint8_t> pFontData, uint32_t font_offset) {
+size_t GetTTCIndex(pdfium::span<const uint8_t> pFontData, size_t font_offset) {
   const uint8_t* p = pFontData.data() + 8;
-  uint32_t nfont = FXSYS_UINT32_GET_MSBFIRST(p);
-  uint32_t index;
-  for (index = 0; index < nfont; index++) {
+  size_t nfont = FXSYS_UINT32_GET_MSBFIRST(p);
+  for (size_t index = 0; index < nfont; index++) {
     p = pFontData.data() + 12 + index * 4;
     if (FXSYS_UINT32_GET_MSBFIRST(p) == font_offset)
       return index;
diff --git a/core/fxge/fx_font.h b/core/fxge/fx_font.h
index aa5c789..ca8d470 100644
--- a/core/fxge/fx_font.h
+++ b/core/fxge/fx_font.h
@@ -49,7 +49,7 @@
 FX_RECT GetGlyphsBBox(const std::vector<TextGlyphPos>& glyphs, int anti_alias);
 
 ByteString GetNameFromTT(pdfium::span<const uint8_t> name_table, uint32_t name);
-int GetTTCIndex(pdfium::span<const uint8_t> pFontData, uint32_t font_offset);
+size_t GetTTCIndex(pdfium::span<const uint8_t> pFontData, size_t font_offset);
 
 inline bool FontStyleIsForceBold(uint32_t style) {
   return !!(style & FXFONT_FORCE_BOLD);
diff --git a/core/fxge/systemfontinfo_iface.h b/core/fxge/systemfontinfo_iface.h
index f6c3623..dfa1e54 100644
--- a/core/fxge/systemfontinfo_iface.h
+++ b/core/fxge/systemfontinfo_iface.h
@@ -7,6 +7,9 @@
 #ifndef CORE_FXGE_SYSTEMFONTINFO_IFACE_H_
 #define CORE_FXGE_SYSTEMFONTINFO_IFACE_H_
 
+#include <stddef.h>
+#include <stdint.h>
+
 #include "core/fxcrt/bytestring.h"
 #include "core/fxcrt/fx_codepage_forward.h"
 #include "core/fxge/cfx_fontmapper.h"
@@ -26,9 +29,9 @@
                         int pitch_family,
                         const ByteString& face) = 0;
   virtual void* GetFont(const ByteString& face) = 0;
-  virtual uint32_t GetFontData(void* hFont,
-                               uint32_t table,
-                               pdfium::span<uint8_t> buffer) = 0;
+  virtual size_t GetFontData(void* hFont,
+                             uint32_t table,
+                             pdfium::span<uint8_t> buffer) = 0;
   virtual bool GetFaceName(void* hFont, ByteString* name) = 0;
   virtual bool GetFontCharset(void* hFont, FX_Charset* charset) = 0;
   virtual void DeleteFont(void* hFont) = 0;
diff --git a/core/fxge/win32/cwin32_platform.cpp b/core/fxge/win32/cwin32_platform.cpp
index 5e9dc83..448ca54 100644
--- a/core/fxge/win32/cwin32_platform.cpp
+++ b/core/fxge/win32/cwin32_platform.cpp
@@ -96,9 +96,9 @@
                 int pitch_family,
                 const ByteString& face) override;
   void* GetFont(const ByteString& face) override { return nullptr; }
-  uint32_t GetFontData(void* hFont,
-                       uint32_t table,
-                       pdfium::span<uint8_t> buffer) override;
+  size_t GetFontData(void* hFont,
+                     uint32_t table,
+                     pdfium::span<uint8_t> buffer) override;
   bool GetFaceName(void* hFont, ByteString* name) override;
   bool GetFontCharset(void* hFont, FX_Charset* charset) override;
   void DeleteFont(void* hFont) override;
@@ -135,7 +135,7 @@
 bool CFX_Win32FontInfo::IsOpenTypeFromDiv(const LOGFONTA* plf) {
   HFONT hFont = CreateFontIndirectA(plf);
   bool ret = false;
-  uint32_t font_size = GetFontData(hFont, 0, {});
+  size_t font_size = GetFontData(hFont, 0, {});
   if (font_size != GDI_ERROR && font_size >= sizeof(uint32_t)) {
     uint32_t lVersion = 0;
     GetFontData(hFont, 0, {(uint8_t*)(&lVersion), sizeof(uint32_t)});
@@ -156,7 +156,7 @@
 bool CFX_Win32FontInfo::IsSupportFontFormDiv(const LOGFONTA* plf) {
   HFONT hFont = CreateFontIndirectA(plf);
   bool ret = false;
-  uint32_t font_size = GetFontData(hFont, 0, {});
+  size_t font_size = GetFontData(hFont, 0, {});
   if (font_size != GDI_ERROR && font_size >= sizeof(uint32_t)) {
     uint32_t lVersion = 0;
     GetFontData(hFont, 0, {(uint8_t*)(&lVersion), sizeof(lVersion)});
@@ -396,14 +396,13 @@
   ::DeleteObject(hFont);
 }
 
-uint32_t CFX_Win32FontInfo::GetFontData(void* hFont,
-                                        uint32_t table,
-                                        pdfium::span<uint8_t> buffer) {
+size_t CFX_Win32FontInfo::GetFontData(void* hFont,
+                                      uint32_t table,
+                                      pdfium::span<uint8_t> buffer) {
   HFONT hOldFont = (HFONT)::SelectObject(m_hDC, (HFONT)hFont);
   table = FXSYS_UINT32_GET_MSBFIRST(reinterpret_cast<uint8_t*>(&table));
-  uint32_t size =
-      ::GetFontData(m_hDC, table, 0, buffer.data(),
-                    pdfium::base::checked_cast<DWORD>(buffer.size()));
+  size_t size = ::GetFontData(m_hDC, table, 0, buffer.data(),
+                              pdfium::base::checked_cast<DWORD>(buffer.size()));
   ::SelectObject(m_hDC, hOldFont);
   if (size == GDI_ERROR) {
     return 0;