diff --git a/core/fpdfapi/font/cpdf_cid2unicodemap.cpp b/core/fpdfapi/font/cpdf_cid2unicodemap.cpp
index 612881f..af91f98 100644
--- a/core/fpdfapi/font/cpdf_cid2unicodemap.cpp
+++ b/core/fpdfapi/font/cpdf_cid2unicodemap.cpp
@@ -6,7 +6,6 @@
 
 #include "core/fpdfapi/font/cpdf_cid2unicodemap.h"
 
-#include "core/fpdfapi/font/cpdf_cmapmanager.h"
 #include "core/fpdfapi/font/cpdf_fontglobals.h"
 
 CPDF_CID2UnicodeMap::CPDF_CID2UnicodeMap() = default;
@@ -27,7 +26,7 @@
   return 0;
 }
 
-void CPDF_CID2UnicodeMap::Load(CPDF_CMapManager* pMgr, CIDSet charset) {
+void CPDF_CID2UnicodeMap::Load(CIDSet charset) {
   m_Charset = charset;
   m_pEmbeddedMap =
       CPDF_FontGlobals::GetInstance()->GetEmbeddedToUnicode(charset);
diff --git a/core/fpdfapi/font/cpdf_cid2unicodemap.h b/core/fpdfapi/font/cpdf_cid2unicodemap.h
index 16467f3..0d0f1ec 100644
--- a/core/fpdfapi/font/cpdf_cid2unicodemap.h
+++ b/core/fpdfapi/font/cpdf_cid2unicodemap.h
@@ -10,8 +10,6 @@
 #include "core/fpdfapi/font/cpdf_cidfont.h"
 #include "third_party/base/span.h"
 
-class CPDF_CMapManager;
-
 class CPDF_CID2UnicodeMap {
  public:
   CPDF_CID2UnicodeMap();
@@ -19,7 +17,7 @@
 
   bool IsLoaded() const;
   wchar_t UnicodeFromCID(uint16_t CID) const;
-  void Load(CPDF_CMapManager* pMgr, CIDSet charset);
+  void Load(CIDSet charset);
 
  private:
   CIDSet m_Charset;
diff --git a/core/fpdfapi/font/cpdf_cmap.cpp b/core/fpdfapi/font/cpdf_cmap.cpp
index 6b54241..db87abf 100644
--- a/core/fpdfapi/font/cpdf_cmap.cpp
+++ b/core/fpdfapi/font/cpdf_cmap.cpp
@@ -11,7 +11,6 @@
 #include <vector>
 
 #include "core/fpdfapi/cmaps/cmap_int.h"
-#include "core/fpdfapi/font/cpdf_cmapmanager.h"
 #include "core/fpdfapi/font/cpdf_cmapparser.h"
 #include "core/fpdfapi/font/cpdf_fontglobals.h"
 #include "core/fpdfapi/parser/cpdf_simple_parser.h"
@@ -242,8 +241,7 @@
 
 CPDF_CMap::~CPDF_CMap() = default;
 
-void CPDF_CMap::LoadPredefined(CPDF_CMapManager* pMgr,
-                               const ByteString& bsName) {
+void CPDF_CMap::LoadPredefined(const ByteString& bsName) {
   m_PredefinedCMap = bsName;
   if (m_PredefinedCMap == "Identity-H" || m_PredefinedCMap == "Identity-V") {
     m_Coding = CIDCODING_CID;
diff --git a/core/fpdfapi/font/cpdf_cmap.h b/core/fpdfapi/font/cpdf_cmap.h
index 2afa3f1..ccf3c97 100644
--- a/core/fpdfapi/font/cpdf_cmap.h
+++ b/core/fpdfapi/font/cpdf_cmap.h
@@ -13,7 +13,6 @@
 #include "core/fxcrt/retain_ptr.h"
 #include "third_party/base/span.h"
 
-class CPDF_CMapManager;
 struct FXCMAP_CMap;
 
 enum CIDCoding : uint8_t {
@@ -51,7 +50,7 @@
   template <typename T, typename... Args>
   friend RetainPtr<T> pdfium::MakeRetain(Args&&... args);
 
-  void LoadPredefined(CPDF_CMapManager* pMgr, const ByteString& name);
+  void LoadPredefined(const ByteString& name);
   void LoadEmbedded(pdfium::span<const uint8_t> data);
 
   bool IsLoaded() const { return m_bLoaded; }
diff --git a/core/fpdfapi/font/cpdf_cmapmanager.cpp b/core/fpdfapi/font/cpdf_cmapmanager.cpp
index bbf77f5..60ec26e 100644
--- a/core/fpdfapi/font/cpdf_cmapmanager.cpp
+++ b/core/fpdfapi/font/cpdf_cmapmanager.cpp
@@ -34,7 +34,7 @@
     name = name.Right(name.GetLength() - 1);
 
   auto pCMap = pdfium::MakeRetain<CPDF_CMap>();
-  pCMap->LoadPredefined(this, name);
+  pCMap->LoadPredefined(name);
   return pCMap;
 }
 
@@ -48,6 +48,6 @@
 std::unique_ptr<CPDF_CID2UnicodeMap> CPDF_CMapManager::LoadCID2UnicodeMap(
     CIDSet charset) {
   auto pMap = pdfium::MakeUnique<CPDF_CID2UnicodeMap>();
-  pMap->Load(this, charset);
+  pMap->Load(charset);
   return pMap;
 }
