diff --git a/core/fxge/cfx_fontmapper.h b/core/fxge/cfx_fontmapper.h
index 7b9b00b..532448a 100644
--- a/core/fxge/cfx_fontmapper.h
+++ b/core/fxge/cfx_fontmapper.h
@@ -12,7 +12,7 @@
 #include <vector>
 
 #include "core/fxcrt/fx_string.h"
-#include "core/fxge/fx_freetype.h"
+#include "core/fxge/cfx_face.h"
 
 class CFX_FontMgr;
 class CFX_SubstFont;
@@ -30,15 +30,15 @@
   void AddInstalledFont(const ByteString& name, int charset);
   void LoadInstalledFonts();
 
-  FXFT_FaceRec* FindSubstFont(const ByteString& face_name,
-                              bool bTrueType,
-                              uint32_t flags,
-                              int weight,
-                              int italic_angle,
-                              int CharsetCP,
-                              CFX_SubstFont* pSubstFont);
+  RetainPtr<CFX_Face> FindSubstFont(const ByteString& face_name,
+                                    bool bTrueType,
+                                    uint32_t flags,
+                                    int weight,
+                                    int italic_angle,
+                                    int CharsetCP,
+                                    CFX_SubstFont* pSubstFont);
 
-  bool IsBuiltinFace(const FXFT_FaceRec* face) const;
+  bool IsBuiltinFace(const RetainPtr<CFX_Face>& face) const;
   int GetFaceSize() const;
   ByteString GetFaceName(int index) const { return m_FaceArray[index].name; }
 
@@ -51,20 +51,20 @@
 
   ByteString GetPSNameFromTT(void* hFont);
   ByteString MatchInstalledFonts(const ByteString& norm_name);
-  FXFT_FaceRec* UseInternalSubst(CFX_SubstFont* pSubstFont,
-                                 int iBaseFont,
-                                 int italic_angle,
-                                 int weight,
-                                 int picthfamily);
-  FXFT_FaceRec* GetCachedTTCFace(void* hFont,
-                                 const uint32_t tableTTCF,
-                                 uint32_t ttc_size,
-                                 uint32_t font_size);
-  FXFT_FaceRec* GetCachedFace(void* hFont,
-                              ByteString SubstName,
-                              int weight,
-                              bool bItalic,
-                              uint32_t font_size);
+  RetainPtr<CFX_Face> UseInternalSubst(CFX_SubstFont* pSubstFont,
+                                       int iBaseFont,
+                                       int italic_angle,
+                                       int weight,
+                                       int picthfamily);
+  RetainPtr<CFX_Face> GetCachedTTCFace(void* hFont,
+                                       const uint32_t tableTTCF,
+                                       uint32_t ttc_size,
+                                       uint32_t font_size);
+  RetainPtr<CFX_Face> GetCachedFace(void* hFont,
+                                    ByteString SubstName,
+                                    int weight,
+                                    bool bItalic,
+                                    uint32_t font_size);
 
   struct FaceData {
     ByteString name;
@@ -76,8 +76,8 @@
   std::vector<FaceData> m_FaceArray;
   std::unique_ptr<SystemFontInfoIface> m_pFontInfo;
   UnownedPtr<CFX_FontMgr> const m_pFontMgr;
-  ScopedFXFTFaceRec m_MMFaces[MM_FACE_COUNT];
-  ScopedFXFTFaceRec m_FoxitFaces[FOXIT_FACE_COUNT];
+  RetainPtr<CFX_Face> m_MMFaces[MM_FACE_COUNT];
+  RetainPtr<CFX_Face> m_FoxitFaces[FOXIT_FACE_COUNT];
 };
 
 #endif  // CORE_FXGE_CFX_FONTMAPPER_H_
