Move CFX_SubstFont and CTTFontDesc into their own files

Review-Url: https://codereview.chromium.org/2292503002
diff --git a/BUILD.gn b/BUILD.gn
index c898f4d..982c57a 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -769,7 +769,10 @@
     "core/fxge/ge/cfx_graphstatedata.cpp",
     "core/fxge/ge/cfx_pathdata.cpp",
     "core/fxge/ge/cfx_renderdevice.cpp",
+    "core/fxge/ge/cfx_substfont.cpp",
     "core/fxge/ge/cfx_unicodeencoding.cpp",
+    "core/fxge/ge/cttfontdesc.cpp",
+    "core/fxge/ge/cttfontdesc.h",
     "core/fxge/ge/fx_ge_font.cpp",
     "core/fxge/ge/fx_ge_fontmap.cpp",
     "core/fxge/ge/fx_ge_linux.cpp",
@@ -787,6 +790,7 @@
     "core/fxge/include/cfx_graphstatedata.h",
     "core/fxge/include/cfx_pathdata.h",
     "core/fxge/include/cfx_renderdevice.h",
+    "core/fxge/include/cfx_substfont.h",
     "core/fxge/include/cfx_unicodeencoding.h",
     "core/fxge/include/cfx_windowsdevice.h",
     "core/fxge/include/fx_dib.h",
diff --git a/core/fpdfdoc/cpdf_interform.cpp b/core/fpdfdoc/cpdf_interform.cpp
index a6f73c6..d567e09 100644
--- a/core/fpdfdoc/cpdf_interform.cpp
+++ b/core/fpdfdoc/cpdf_interform.cpp
@@ -16,6 +16,7 @@
 #include "core/fpdfdoc/include/cpdf_filespec.h"
 #include "core/fpdfdoc/include/cpdf_formcontrol.h"
 #include "core/fpdfdoc/include/cpdf_interform.h"
+#include "core/fxge/include/cfx_substfont.h"
 #include "core/fxge/include/fx_font.h"
 #include "third_party/base/stl_util.h"
 
diff --git a/core/fxge/ge/cfx_facecache.cpp b/core/fxge/ge/cfx_facecache.cpp
index 7c85b06..c35830f 100644
--- a/core/fxge/ge/cfx_facecache.cpp
+++ b/core/fxge/ge/cfx_facecache.cpp
@@ -12,6 +12,7 @@
 #include "core/fxge/include/cfx_fontmgr.h"
 #include "core/fxge/include/cfx_gemodule.h"
 #include "core/fxge/include/cfx_pathdata.h"
+#include "core/fxge/include/cfx_substfont.h"
 #include "core/fxge/include/fx_freetype.h"
 
 #ifdef _SKIA_SUPPORT_
diff --git a/core/fxge/ge/cfx_fontmapper.cpp b/core/fxge/ge/cfx_fontmapper.cpp
index 56bfdca..37c1d03 100644
--- a/core/fxge/ge/cfx_fontmapper.cpp
+++ b/core/fxge/ge/cfx_fontmapper.cpp
@@ -10,6 +10,7 @@
 #include <utility>
 #include <vector>
 
+#include "core/fxge/include/cfx_substfont.h"
 #include "core/fxge/include/ifx_systemfontinfo.h"
 #include "core/fxge/include/fx_font.h"
 
diff --git a/core/fxge/ge/cfx_fontmgr.cpp b/core/fxge/ge/cfx_fontmgr.cpp
index 3f03988..ec1d81b 100644
--- a/core/fxge/ge/cfx_fontmgr.cpp
+++ b/core/fxge/ge/cfx_fontmgr.cpp
@@ -7,9 +7,11 @@
 #include "core/fxge/include/cfx_fontmgr.h"
 
 #include "core/fxge/fontdata/chromefontdata/chromefontdata.h"
+#include "core/fxge/ge/cttfontdesc.h"
 #include "core/fxge/include/cfx_fontmapper.h"
-#include "core/fxge/include/ifx_systemfontinfo.h"
+#include "core/fxge/include/cfx_substfont.h"
 #include "core/fxge/include/fx_font.h"
+#include "core/fxge/include/ifx_systemfontinfo.h"
 
 namespace {
 
diff --git a/core/fxge/ge/cfx_substfont.cpp b/core/fxge/ge/cfx_substfont.cpp
new file mode 100644
index 0000000..5014af7
--- /dev/null
+++ b/core/fxge/ge/cfx_substfont.cpp
@@ -0,0 +1,18 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "core/fxge/include/cfx_substfont.h"
+
+#include "core/fxge/include/fx_font.h"
+
+CFX_SubstFont::CFX_SubstFont()
+    : m_Charset(FXFONT_ANSI_CHARSET),
+      m_SubstFlags(0),
+      m_Weight(0),
+      m_ItalicAngle(0),
+      m_bSubstCJK(false),
+      m_WeightCJK(0),
+      m_bItalicCJK(false) {}
diff --git a/core/fxge/ge/cttfontdesc.cpp b/core/fxge/ge/cttfontdesc.cpp
new file mode 100644
index 0000000..31018cb
--- /dev/null
+++ b/core/fxge/ge/cttfontdesc.cpp
@@ -0,0 +1,42 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "core/fxge/ge/cttfontdesc.h"
+
+#include "core/fxge/include/fx_freetype.h"
+
+CTTFontDesc::~CTTFontDesc() {
+  if (m_Type == 1) {
+    if (m_SingleFace.m_pFace)
+      FXFT_Done_Face(m_SingleFace.m_pFace);
+  } else if (m_Type == 2) {
+    for (int i = 0; i < 16; i++) {
+      if (m_TTCFace.m_pFaces[i])
+        FXFT_Done_Face(m_TTCFace.m_pFaces[i]);
+    }
+  }
+  FX_Free(m_pFontData);
+}
+
+int CTTFontDesc::ReleaseFace(FXFT_Face face) {
+  if (m_Type == 1) {
+    if (m_SingleFace.m_pFace != face)
+      return -1;
+  } else if (m_Type == 2) {
+    int i;
+    for (i = 0; i < 16; i++) {
+      if (m_TTCFace.m_pFaces[i] == face)
+        break;
+    }
+    if (i == 16)
+      return -1;
+  }
+  m_RefCount--;
+  if (m_RefCount)
+    return m_RefCount;
+  delete this;
+  return 0;
+}
diff --git a/core/fxge/ge/cttfontdesc.h b/core/fxge/ge/cttfontdesc.h
new file mode 100644
index 0000000..05cafde
--- /dev/null
+++ b/core/fxge/ge/cttfontdesc.h
@@ -0,0 +1,45 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef CORE_FXGE_GE_CTTFONTDESC_H_
+#define CORE_FXGE_GE_CTTFONTDESC_H_
+
+#include "core/fxcrt/include/fx_system.h"
+#include "core/fxge/include/fx_font.h"
+
+#define FX_FONT_FLAG_SERIF 0x01
+#define FX_FONT_FLAG_FIXEDPITCH 0x02
+#define FX_FONT_FLAG_ITALIC 0x04
+#define FX_FONT_FLAG_BOLD 0x08
+#define FX_FONT_FLAG_SYMBOLIC_SYMBOL 0x10
+#define FX_FONT_FLAG_SYMBOLIC_DINGBATS 0x20
+#define FX_FONT_FLAG_MULTIPLEMASTER 0x40
+
+class CTTFontDesc {
+ public:
+  CTTFontDesc() : m_Type(0), m_pFontData(nullptr), m_RefCount(0) {}
+  ~CTTFontDesc();
+  // ret < 0, releaseface not appropriate for this object.
+  // ret == 0, object released
+  // ret > 0, object still alive, other referrers.
+  int ReleaseFace(FXFT_Face face);
+
+  int m_Type;
+  union {
+    struct {
+      FX_BOOL m_bItalic;
+      FX_BOOL m_bBold;
+      FXFT_Face m_pFace;
+    } m_SingleFace;
+    struct {
+      FXFT_Face m_pFaces[16];
+    } m_TTCFace;
+  };
+  uint8_t* m_pFontData;
+  int m_RefCount;
+};
+
+#endif  // CORE_FXGE_GE_CTTFONTDESC_H_
diff --git a/core/fxge/ge/fx_ge_font.cpp b/core/fxge/ge/fx_ge_font.cpp
index e459d6b..cb86429 100644
--- a/core/fxge/ge/fx_ge_font.cpp
+++ b/core/fxge/ge/fx_ge_font.cpp
@@ -10,6 +10,7 @@
 #include "core/fxge/ge/fx_text_int.h"
 #include "core/fxge/include/cfx_fontmgr.h"
 #include "core/fxge/include/cfx_gemodule.h"
+#include "core/fxge/include/cfx_substfont.h"
 #include "core/fxge/include/fx_freetype.h"
 
 #define EM_ADJUST(em, a) (em == 0 ? (a) : (a)*1000 / em)
diff --git a/core/fxge/ge/fx_ge_fontmap.cpp b/core/fxge/ge/fx_ge_fontmap.cpp
index 6de3647..2f54105 100644
--- a/core/fxge/ge/fx_ge_fontmap.cpp
+++ b/core/fxge/ge/fx_ge_fontmap.cpp
@@ -7,52 +7,6 @@
 #include "core/fxge/include/cfx_fontmapper.h"
 #include "core/fxge/include/ifx_systemfontinfo.h"
 
-CFX_SubstFont::CFX_SubstFont() {
-  m_Charset = FXFONT_ANSI_CHARSET;
-  m_SubstFlags = 0;
-  m_Weight = 0;
-  m_ItalicAngle = 0;
-  m_bSubstCJK = false;
-  m_WeightCJK = 0;
-  m_bItalicCJK = false;
-}
-
-CTTFontDesc::~CTTFontDesc() {
-  if (m_Type == 1) {
-    if (m_SingleFace.m_pFace) {
-      FXFT_Done_Face(m_SingleFace.m_pFace);
-    }
-  } else if (m_Type == 2) {
-    for (int i = 0; i < 16; i++)
-      if (m_TTCFace.m_pFaces[i]) {
-        FXFT_Done_Face(m_TTCFace.m_pFaces[i]);
-      }
-  }
-  FX_Free(m_pFontData);
-}
-int CTTFontDesc::ReleaseFace(FXFT_Face face) {
-  if (m_Type == 1) {
-    if (m_SingleFace.m_pFace != face) {
-      return -1;
-    }
-  } else if (m_Type == 2) {
-    int i;
-    for (i = 0; i < 16; i++)
-      if (m_TTCFace.m_pFaces[i] == face) {
-        break;
-      }
-    if (i == 16) {
-      return -1;
-    }
-  }
-  m_RefCount--;
-  if (m_RefCount) {
-    return m_RefCount;
-  }
-  delete this;
-  return 0;
-}
-
 static CFX_ByteString GetStringFromTable(const uint8_t* string_ptr,
                                          uint32_t string_ptr_length,
                                          uint16_t offset,
diff --git a/core/fxge/include/cfx_fontmapper.h b/core/fxge/include/cfx_fontmapper.h
index 09d5429..0d82855 100644
--- a/core/fxge/include/cfx_fontmapper.h
+++ b/core/fxge/include/cfx_fontmapper.h
@@ -13,6 +13,8 @@
 #include "core/fxge/include/cfx_fontmgr.h"
 #include "core/fxge/include/fx_font.h"
 
+class CFX_SubstFont;
+
 class CFX_FontMapper {
  public:
   explicit CFX_FontMapper(CFX_FontMgr* mgr);
diff --git a/core/fxge/include/cfx_fontmgr.h b/core/fxge/include/cfx_fontmgr.h
index dac8c5a..c8e66ae 100644
--- a/core/fxge/include/cfx_fontmgr.h
+++ b/core/fxge/include/cfx_fontmgr.h
@@ -14,6 +14,8 @@
 
 class IFX_SystemFontInfo;
 class CFX_FontMapper;
+class CFX_SubstFont;
+class CTTFontDesc;
 
 class CFX_FontMgr {
  public:
diff --git a/core/fxge/include/cfx_substfont.h b/core/fxge/include/cfx_substfont.h
new file mode 100644
index 0000000..a712a7a
--- /dev/null
+++ b/core/fxge/include/cfx_substfont.h
@@ -0,0 +1,34 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef CORE_FXGE_INCLUDE_CFX_SUBSTFONT_H_
+#define CORE_FXGE_INCLUDE_CFX_SUBSTFONT_H_
+
+#include "core/fxcrt/include/fx_string.h"
+
+#define FXFONT_SUBST_MM 0x01
+#define FXFONT_SUBST_GLYPHPATH 0x04
+#define FXFONT_SUBST_CLEARTYPE 0x08
+#define FXFONT_SUBST_TRANSFORM 0x10
+#define FXFONT_SUBST_NONSYMBOL 0x20
+#define FXFONT_SUBST_EXACT 0x40
+#define FXFONT_SUBST_STANDARD 0x80
+
+class CFX_SubstFont {
+ public:
+  CFX_SubstFont();
+
+  CFX_ByteString m_Family;
+  int m_Charset;
+  uint32_t m_SubstFlags;
+  int m_Weight;
+  int m_ItalicAngle;
+  bool m_bSubstCJK;
+  int m_WeightCJK;
+  bool m_bItalicCJK;
+};
+
+#endif  // CORE_FXGE_INCLUDE_CFX_SUBSTFONT_H_
diff --git a/core/fxge/include/fx_font.h b/core/fxge/include/fx_font.h
index 28c51b1..cdde643 100644
--- a/core/fxge/include/fx_font.h
+++ b/core/fxge/include/fx_font.h
@@ -7,11 +7,11 @@
 #ifndef CORE_FXGE_INCLUDE_FX_FONT_H_
 #define CORE_FXGE_INCLUDE_FX_FONT_H_
 
-#include <map>
 #include <memory>
 #include <vector>
 
 #include "core/fxcrt/include/fx_system.h"
+#include "core/fxge/include/cfx_substfont.h"
 #include "core/fxge/include/fx_dib.h"
 #include "core/fxge/include/fx_freetype.h"
 
@@ -22,8 +22,6 @@
 class CFX_FontCache;
 class CFX_PathData;
 class CFX_SizeGlyphCache;
-class CFX_SubstFont;
-class CTTFontDesc;
 
 #ifdef _SKIA_SUPPORT_
 class SkTypeface;
@@ -174,63 +172,6 @@
   FX_BOOL m_bVertical;
 };
 
-#define FXFONT_SUBST_MM 0x01
-#define FXFONT_SUBST_GLYPHPATH 0x04
-#define FXFONT_SUBST_CLEARTYPE 0x08
-#define FXFONT_SUBST_TRANSFORM 0x10
-#define FXFONT_SUBST_NONSYMBOL 0x20
-#define FXFONT_SUBST_EXACT 0x40
-#define FXFONT_SUBST_STANDARD 0x80
-
-class CFX_SubstFont {
- public:
-  CFX_SubstFont();
-
-  CFX_ByteString m_Family;
-  int m_Charset;
-  uint32_t m_SubstFlags;
-  int m_Weight;
-  int m_ItalicAngle;
-  bool m_bSubstCJK;
-  int m_WeightCJK;
-  bool m_bItalicCJK;
-};
-
-#define FX_FONT_FLAG_SERIF 0x01
-#define FX_FONT_FLAG_FIXEDPITCH 0x02
-#define FX_FONT_FLAG_ITALIC 0x04
-#define FX_FONT_FLAG_BOLD 0x08
-#define FX_FONT_FLAG_SYMBOLIC_SYMBOL 0x10
-#define FX_FONT_FLAG_SYMBOLIC_DINGBATS 0x20
-#define FX_FONT_FLAG_MULTIPLEMASTER 0x40
-
-class CTTFontDesc {
- public:
-  CTTFontDesc() {
-    m_Type = 0;
-    m_pFontData = nullptr;
-    m_RefCount = 0;
-  }
-  ~CTTFontDesc();
-  // ret < 0, releaseface not appropriate for this object.
-  // ret == 0, object released
-  // ret > 0, object still alive, other referrers.
-  int ReleaseFace(FXFT_Face face);
-  int m_Type;
-  union {
-    struct {
-      FX_BOOL m_bItalic;
-      FX_BOOL m_bBold;
-      FXFT_Face m_pFace;
-    } m_SingleFace;
-    struct {
-      FXFT_Face m_pFaces[16];
-    } m_TTCFace;
-  };
-  uint8_t* m_pFontData;
-  int m_RefCount;
-};
-
 class CFX_FontFaceInfo {
  public:
   CFX_FontFaceInfo(CFX_ByteString filePath,
diff --git a/fpdfsdk/formfiller/cba_fontmap.cpp b/fpdfsdk/formfiller/cba_fontmap.cpp
index 97590d2..a816e2c 100644
--- a/fpdfsdk/formfiller/cba_fontmap.cpp
+++ b/fpdfsdk/formfiller/cba_fontmap.cpp
@@ -13,6 +13,7 @@
 #include "core/fpdfapi/fpdf_parser/include/cpdf_stream.h"
 #include "core/fpdfapi/fpdf_parser/include/fpdf_parser_decode.h"
 #include "core/fpdfdoc/include/cpdf_formfield.h"
+#include "core/fxge/include/cfx_substfont.h"
 #include "fpdfsdk/include/cpdfsdk_annot.h"
 
 CBA_FontMap::CBA_FontMap(CPDFSDK_Annot* pAnnot,
diff --git a/xfa/fde/fde_gedevice.cpp b/xfa/fde/fde_gedevice.cpp
index 778eb73..8279e77 100644
--- a/xfa/fde/fde_gedevice.cpp
+++ b/xfa/fde/fde_gedevice.cpp
@@ -12,6 +12,7 @@
 #include "core/fxge/include/cfx_gemodule.h"
 #include "core/fxge/include/cfx_graphstatedata.h"
 #include "core/fxge/include/cfx_renderdevice.h"
+#include "core/fxge/include/cfx_substfont.h"
 #include "xfa/fde/cfde_path.h"
 #include "xfa/fde/fde_object.h"
 #include "xfa/fgas/font/fgas_font.h"
diff --git a/xfa/fgas/font/fgas_gefont.cpp b/xfa/fgas/font/fgas_gefont.cpp
index 3a5b1cd..1507fa4 100644
--- a/xfa/fgas/font/fgas_gefont.cpp
+++ b/xfa/fgas/font/fgas_gefont.cpp
@@ -6,6 +6,7 @@
 
 #include "xfa/fgas/font/fgas_gefont.h"
 
+#include "core/fxge/include/cfx_substfont.h"
 #include "core/fxge/include/cfx_unicodeencoding.h"
 #include "core/fxge/include/cfx_unicodeencodingex.h"
 #include "xfa/fgas/crt/fgas_codepage.h"