Encapsulate font stream code inside CFX_Face

Instead of directly calling FreeType code on the handle returned by
CFX_Face::GetRec(), add CFX_Face::GetStream() for reading the font data.

Bug: pdfium:2037
Change-Id: I0424fc52550ca81019386241d6704b03b5926edf
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/107492
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxge/cfx_face.cpp b/core/fxge/cfx_face.cpp
index c05fd88..7571832 100644
--- a/core/fxge/cfx_face.cpp
+++ b/core/fxge/cfx_face.cpp
@@ -70,6 +70,10 @@
   return !!(GetRec()->style_flags & FT_STYLE_FLAG_BOLD);
 }
 
+pdfium::span<uint8_t> CFX_Face::GetData() const {
+  return {GetRec()->stream->base, GetRec()->stream->size};
+}
+
 CFX_Face::CFX_Face(FXFT_FaceRec* rec, RetainPtr<Retainable> pDesc)
     : m_pRec(rec), m_pDesc(std::move(pDesc)) {
   DCHECK(m_pRec);
diff --git a/core/fxge/cfx_face.h b/core/fxge/cfx_face.h
index 9880ef7..0c3067d 100644
--- a/core/fxge/cfx_face.h
+++ b/core/fxge/cfx_face.h
@@ -34,6 +34,8 @@
   bool IsItalic() const;
   bool IsBold() const;
 
+  pdfium::span<uint8_t> GetData() const;
+
   FXFT_FaceRec* GetRec() { return m_pRec.get(); }
   const FXFT_FaceRec* GetRec() const { return m_pRec.get(); }
 
diff --git a/core/fxge/cfx_font.cpp b/core/fxge/cfx_font.cpp
index 8eb8f54..c150e9b 100644
--- a/core/fxge/cfx_font.cpp
+++ b/core/fxge/cfx_font.cpp
@@ -382,8 +382,7 @@
       face_name, bTrueType, flags, weight, italic_angle, code_page,
       m_pSubstFont.get());
   if (m_Face) {
-    m_FontData = {FXFT_Get_Face_Stream_Base(m_Face->GetRec()),
-                  FXFT_Get_Face_Stream_Size(m_Face->GetRec())};
+    m_FontData = m_Face->GetData();
   }
 }
 
diff --git a/core/fxge/freetype/fx_freetype.h b/core/fxge/freetype/fx_freetype.h
index 618843f..0304eb9 100644
--- a/core/fxge/freetype/fx_freetype.h
+++ b/core/fxge/freetype/fx_freetype.h
@@ -58,8 +58,6 @@
 #define FXFT_Render_Glyph(face, mode) \
   FT_Render_Glyph((face)->glyph, static_cast<enum FT_Render_Mode_>(mode))
 
-#define FXFT_Get_Face_Stream_Base(face) (face)->stream->base
-#define FXFT_Get_Face_Stream_Size(face) (face)->stream->size
 #define FXFT_Get_Face_Family_Name(face) (face)->family_name
 #define FXFT_Get_Face_Style_Name(face) (face)->style_name
 #define FXFT_Get_Glyph_HoriBearingX(face) (face)->glyph->metrics.horiBearingX