Move CPDF_ModuleMgr methods into cpdf_modulemgr.cpp.

Some of them were implemented in core/fpdfapi/cmaps. Reorder
CPDF_ModuleMgr private methods as well.

Change-Id: I88b7c48049de83591c961dd9a74e01fefb211c0c
Reviewed-on: https://pdfium-review.googlesource.com/c/43991
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/cmaps/CNS1/cmaps_cns1.cpp b/core/fpdfapi/cmaps/CNS1/cmaps_cns1.cpp
index 1291fa1..80c31d6 100644
--- a/core/fpdfapi/cmaps/CNS1/cmaps_cns1.cpp
+++ b/core/fpdfapi/cmaps/CNS1/cmaps_cns1.cpp
@@ -6,12 +6,7 @@
 
 #include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
 
-#include "core/fpdfapi/cmaps/cmap_int.h"
-#include "core/fpdfapi/cpdf_modulemgr.h"
-#include "core/fpdfapi/font/cpdf_fontglobals.h"
-#include "core/fpdfapi/page/cpdf_pagemodule.h"
-
-static const FXCMAP_CMap g_FXCMAP_CNS1_cmaps[] = {
+const FXCMAP_CMap g_FXCMAP_CNS1_cmaps[] = {
     {"B5pc-H", g_FXCMAP_B5pc_H_0, nullptr, 247, 0, FXCMAP_CMap::Range, 0},
     {"B5pc-V", g_FXCMAP_B5pc_V_0, nullptr, 12, 0, FXCMAP_CMap::Range, -1},
     {"HKscs-B5-H", g_FXCMAP_HKscs_B5_H_5, nullptr, 1210, 0, FXCMAP_CMap::Range,
@@ -38,9 +33,4 @@
      FXCMAP_CMap::Range, -1},
 };
 
-void CPDF_ModuleMgr::LoadEmbeddedCNS1CMaps() {
-  CPDF_FontGlobals* pFontGlobals =
-      CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
-  pFontGlobals->SetEmbeddedCharset(CIDSET_CNS1, g_FXCMAP_CNS1_cmaps);
-  pFontGlobals->SetEmbeddedToUnicode(CIDSET_CNS1, g_FXCMAP_CNS1CID2Unicode_5);
-}
+const size_t g_FXCMAP_CNS1_cmaps_size = FX_ArraySize(g_FXCMAP_CNS1_cmaps);
diff --git a/core/fpdfapi/cmaps/CNS1/cmaps_cns1.h b/core/fpdfapi/cmaps/CNS1/cmaps_cns1.h
index 483fd66..5868ed7 100644
--- a/core/fpdfapi/cmaps/CNS1/cmaps_cns1.h
+++ b/core/fpdfapi/cmaps/CNS1/cmaps_cns1.h
@@ -7,8 +7,6 @@
 #ifndef CORE_FPDFAPI_CMAPS_CNS1_CMAPS_CNS1_H_
 #define CORE_FPDFAPI_CMAPS_CNS1_CMAPS_CNS1_H_
 
-#include <stdint.h>
-
 #include "core/fpdfapi/cmaps/cmap_int.h"
 
 extern const uint16_t g_FXCMAP_B5pc_H_0[];
@@ -27,5 +25,7 @@
 extern const uint16_t g_FXCMAP_UniCNS_UCS2_V_3[];
 extern const uint16_t g_FXCMAP_UniCNS_UTF16_H_0[];
 extern const uint16_t g_FXCMAP_CNS1CID2Unicode_5[19088];
+extern const FXCMAP_CMap g_FXCMAP_CNS1_cmaps[];
+extern const size_t g_FXCMAP_CNS1_cmaps_size;
 
 #endif  // CORE_FPDFAPI_CMAPS_CNS1_CMAPS_CNS1_H_
diff --git a/core/fpdfapi/cmaps/GB1/cmaps_gb1.cpp b/core/fpdfapi/cmaps/GB1/cmaps_gb1.cpp
index 26022c6..0ba0db7 100644
--- a/core/fpdfapi/cmaps/GB1/cmaps_gb1.cpp
+++ b/core/fpdfapi/cmaps/GB1/cmaps_gb1.cpp
@@ -6,12 +6,7 @@
 
 #include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
 
-#include "core/fpdfapi/cmaps/cmap_int.h"
-#include "core/fpdfapi/cpdf_modulemgr.h"
-#include "core/fpdfapi/font/cpdf_fontglobals.h"
-#include "core/fpdfapi/page/cpdf_pagemodule.h"
-
-static const FXCMAP_CMap g_FXCMAP_GB1_cmaps[] = {
+const FXCMAP_CMap g_FXCMAP_GB1_cmaps[] = {
     {"GB-EUC-H", g_FXCMAP_GB_EUC_H_0, nullptr, 90, 0, FXCMAP_CMap::Range, 0},
     {"GB-EUC-V", g_FXCMAP_GB_EUC_V_0, nullptr, 20, 0, FXCMAP_CMap::Range, -1},
     {"GBpc-EUC-H", g_FXCMAP_GBpc_EUC_H_0, nullptr, 91, 0, FXCMAP_CMap::Range,
@@ -38,9 +33,4 @@
      FXCMAP_CMap::Range, -1},
 };
 
-void CPDF_ModuleMgr::LoadEmbeddedGB1CMaps() {
-  CPDF_FontGlobals* pFontGlobals =
-      CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
-  pFontGlobals->SetEmbeddedCharset(CIDSET_GB1, g_FXCMAP_GB1_cmaps);
-  pFontGlobals->SetEmbeddedToUnicode(CIDSET_GB1, g_FXCMAP_GB1CID2Unicode_5);
-}
+const size_t g_FXCMAP_GB1_cmaps_size = FX_ArraySize(g_FXCMAP_GB1_cmaps);
diff --git a/core/fpdfapi/cmaps/GB1/cmaps_gb1.h b/core/fpdfapi/cmaps/GB1/cmaps_gb1.h
index 989d9ce..adec851 100644
--- a/core/fpdfapi/cmaps/GB1/cmaps_gb1.h
+++ b/core/fpdfapi/cmaps/GB1/cmaps_gb1.h
@@ -7,8 +7,6 @@
 #ifndef CORE_FPDFAPI_CMAPS_GB1_CMAPS_GB1_H_
 #define CORE_FPDFAPI_CMAPS_GB1_CMAPS_GB1_H_
 
-#include <stdint.h>
-
 #include "core/fpdfapi/cmaps/cmap_int.h"
 
 extern const uint16_t g_FXCMAP_GB_EUC_H_0[];
@@ -25,5 +23,7 @@
 extern const uint16_t g_FXCMAP_UniGB_UCS2_H_4[];
 extern const uint16_t g_FXCMAP_UniGB_UCS2_V_4[];
 extern const uint16_t g_FXCMAP_GB1CID2Unicode_5[30284];
+extern const FXCMAP_CMap g_FXCMAP_GB1_cmaps[];
+extern const size_t g_FXCMAP_GB1_cmaps_size;
 
 #endif  // CORE_FPDFAPI_CMAPS_GB1_CMAPS_GB1_H_
diff --git a/core/fpdfapi/cmaps/Japan1/cmaps_japan1.cpp b/core/fpdfapi/cmaps/Japan1/cmaps_japan1.cpp
index ecc2b3f..9b9cfc3 100644
--- a/core/fpdfapi/cmaps/Japan1/cmaps_japan1.cpp
+++ b/core/fpdfapi/cmaps/Japan1/cmaps_japan1.cpp
@@ -6,12 +6,7 @@
 
 #include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
 
-#include "core/fpdfapi/cmaps/cmap_int.h"
-#include "core/fpdfapi/cpdf_modulemgr.h"
-#include "core/fpdfapi/font/cpdf_fontglobals.h"
-#include "core/fpdfapi/page/cpdf_pagemodule.h"
-
-static const FXCMAP_CMap g_FXCMAP_Japan1_cmaps[] = {
+const FXCMAP_CMap g_FXCMAP_Japan1_cmaps[] = {
     {"83pv-RKSJ-H", g_FXCMAP_83pv_RKSJ_H_1, nullptr, 222, 0, FXCMAP_CMap::Range,
      0},
     {"90ms-RKSJ-H", g_FXCMAP_90ms_RKSJ_H_2, nullptr, 171, 0, FXCMAP_CMap::Range,
@@ -50,10 +45,4 @@
      FXCMAP_CMap::Single, -1},
 };
 
-void CPDF_ModuleMgr::LoadEmbeddedJapan1CMaps() {
-  CPDF_FontGlobals* pFontGlobals =
-      CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
-  pFontGlobals->SetEmbeddedCharset(CIDSET_JAPAN1, g_FXCMAP_Japan1_cmaps);
-  pFontGlobals->SetEmbeddedToUnicode(CIDSET_JAPAN1,
-                                     g_FXCMAP_Japan1CID2Unicode_4);
-}
+const size_t g_FXCMAP_Japan1_cmaps_size = FX_ArraySize(g_FXCMAP_Japan1_cmaps);
diff --git a/core/fpdfapi/cmaps/Japan1/cmaps_japan1.h b/core/fpdfapi/cmaps/Japan1/cmaps_japan1.h
index 0979d2a..c98bb15 100644
--- a/core/fpdfapi/cmaps/Japan1/cmaps_japan1.h
+++ b/core/fpdfapi/cmaps/Japan1/cmaps_japan1.h
@@ -7,7 +7,7 @@
 #ifndef CORE_FPDFAPI_CMAPS_JAPAN1_CMAPS_JAPAN1_H_
 #define CORE_FPDFAPI_CMAPS_JAPAN1_CMAPS_JAPAN1_H_
 
-#include <stdint.h>
+#include "core/fpdfapi/cmaps/cmap_int.h"
 
 extern const uint16_t g_FXCMAP_83pv_RKSJ_H_1[];
 extern const uint16_t g_FXCMAP_90ms_RKSJ_H_2[];
@@ -31,5 +31,7 @@
 extern const uint16_t g_FXCMAP_UniJIS_UTF16_H_0_DWord[];
 extern const uint16_t g_FXCMAP_UniJIS_UTF16_V_0[];
 extern const uint16_t g_FXCMAP_Japan1CID2Unicode_4[15444];
+extern const FXCMAP_CMap g_FXCMAP_Japan1_cmaps[];
+extern const size_t g_FXCMAP_Japan1_cmaps_size;
 
 #endif  // CORE_FPDFAPI_CMAPS_JAPAN1_CMAPS_JAPAN1_H_
diff --git a/core/fpdfapi/cmaps/Korea1/cmaps_korea1.cpp b/core/fpdfapi/cmaps/Korea1/cmaps_korea1.cpp
index 4c92012..a95ab3e 100644
--- a/core/fpdfapi/cmaps/Korea1/cmaps_korea1.cpp
+++ b/core/fpdfapi/cmaps/Korea1/cmaps_korea1.cpp
@@ -6,12 +6,7 @@
 
 #include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
 
-#include "core/fpdfapi/cmaps/cmap_int.h"
-#include "core/fpdfapi/cpdf_modulemgr.h"
-#include "core/fpdfapi/font/cpdf_fontglobals.h"
-#include "core/fpdfapi/page/cpdf_pagemodule.h"
-
-static const FXCMAP_CMap g_FXCMAP_Korea1_cmaps[] = {
+const FXCMAP_CMap g_FXCMAP_Korea1_cmaps[] = {
     {"KSC-EUC-H", g_FXCMAP_KSC_EUC_H_0, nullptr, 467, 0, FXCMAP_CMap::Range, 0},
     {"KSC-EUC-V", g_FXCMAP_KSC_EUC_V_0, nullptr, 16, 0, FXCMAP_CMap::Range, -1},
     {"KSCms-UHC-H", g_FXCMAP_KSCms_UHC_H_1, nullptr, 675, 0, FXCMAP_CMap::Range,
@@ -34,10 +29,4 @@
      FXCMAP_CMap::Range, -1},
 };
 
-void CPDF_ModuleMgr::LoadEmbeddedKorea1CMaps() {
-  CPDF_FontGlobals* pFontGlobals =
-      CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
-  pFontGlobals->SetEmbeddedCharset(CIDSET_KOREA1, g_FXCMAP_Korea1_cmaps);
-  pFontGlobals->SetEmbeddedToUnicode(CIDSET_KOREA1,
-                                     g_FXCMAP_Korea1CID2Unicode_2);
-}
+const size_t g_FXCMAP_Korea1_cmaps_size = FX_ArraySize(g_FXCMAP_Korea1_cmaps);
diff --git a/core/fpdfapi/cmaps/Korea1/cmaps_korea1.h b/core/fpdfapi/cmaps/Korea1/cmaps_korea1.h
index 27b9b0b..b608135 100644
--- a/core/fpdfapi/cmaps/Korea1/cmaps_korea1.h
+++ b/core/fpdfapi/cmaps/Korea1/cmaps_korea1.h
@@ -7,7 +7,7 @@
 #ifndef CORE_FPDFAPI_CMAPS_KOREA1_CMAPS_KOREA1_H_
 #define CORE_FPDFAPI_CMAPS_KOREA1_CMAPS_KOREA1_H_
 
-#include <stdint.h>
+#include "core/fpdfapi/cmaps/cmap_int.h"
 
 extern const uint16_t g_FXCMAP_KSC_EUC_H_0[];
 extern const uint16_t g_FXCMAP_KSC_EUC_V_0[];
@@ -20,5 +20,7 @@
 extern const uint16_t g_FXCMAP_UniKS_UCS2_V_1[];
 extern const uint16_t g_FXCMAP_UniKS_UTF16_H_0[];
 extern const uint16_t g_FXCMAP_Korea1CID2Unicode_2[18352];
+extern const FXCMAP_CMap g_FXCMAP_Korea1_cmaps[];
+extern const size_t g_FXCMAP_Korea1_cmaps_size;
 
 #endif  // CORE_FPDFAPI_CMAPS_KOREA1_CMAPS_KOREA1_H_
diff --git a/core/fpdfapi/cpdf_modulemgr.cpp b/core/fpdfapi/cpdf_modulemgr.cpp
index 678997a8..34fe049 100644
--- a/core/fpdfapi/cpdf_modulemgr.cpp
+++ b/core/fpdfapi/cpdf_modulemgr.cpp
@@ -6,6 +6,10 @@
 
 #include "core/fpdfapi/cpdf_modulemgr.h"
 
+#include "core/fpdfapi/cmaps/CNS1/cmaps_cns1.h"
+#include "core/fpdfapi/cmaps/GB1/cmaps_gb1.h"
+#include "core/fpdfapi/cmaps/Japan1/cmaps_japan1.h"
+#include "core/fpdfapi/cmaps/Korea1/cmaps_korea1.h"
 #include "core/fpdfapi/page/cpdf_pagemodule.h"
 #include "core/fxcodec/fx_codec.h"
 #include "third_party/base/ptr_util.h"
@@ -56,39 +60,6 @@
   LoadCodecModules();
 }
 
-void CPDF_ModuleMgr::LoadEmbeddedMaps() {
-  LoadEmbeddedGB1CMaps();
-  LoadEmbeddedJapan1CMaps();
-  LoadEmbeddedCNS1CMaps();
-  LoadEmbeddedKorea1CMaps();
-}
-
-void CPDF_ModuleMgr::LoadCodecModules() {
-#ifdef PDF_ENABLE_XFA_BMP
-  m_pCodecModule->SetBmpModule(pdfium::MakeUnique<CCodec_BmpModule>());
-#endif
-
-#ifdef PDF_ENABLE_XFA_GIF
-  m_pCodecModule->SetGifModule(pdfium::MakeUnique<CCodec_GifModule>());
-#endif
-
-#ifdef PDF_ENABLE_XFA_PNG
-  m_pCodecModule->SetPngModule(pdfium::MakeUnique<CCodec_PngModule>());
-#endif
-
-#ifdef PDF_ENABLE_XFA_TIFF
-  m_pCodecModule->SetTiffModule(pdfium::MakeUnique<CCodec_TiffModule>());
-#endif
-}
-
-void CPDF_ModuleMgr::InitCodecModule() {
-  m_pCodecModule = pdfium::MakeUnique<CCodec_ModuleMgr>();
-}
-
-void CPDF_ModuleMgr::InitPageModule() {
-  m_pPageModule = pdfium::MakeUnique<CPDF_PageModule>();
-}
-
 CCodec_FaxModule* CPDF_ModuleMgr::GetFaxModule() {
   return m_pCodecModule->GetFaxModule();
 }
@@ -112,3 +83,74 @@
 CCodec_FlateModule* CPDF_ModuleMgr::GetFlateModule() {
   return m_pCodecModule->GetFlateModule();
 }
+
+void CPDF_ModuleMgr::InitPageModule() {
+  m_pPageModule = pdfium::MakeUnique<CPDF_PageModule>();
+}
+
+void CPDF_ModuleMgr::InitCodecModule() {
+  m_pCodecModule = pdfium::MakeUnique<CCodec_ModuleMgr>();
+}
+
+void CPDF_ModuleMgr::LoadCodecModules() {
+#ifdef PDF_ENABLE_XFA_BMP
+  m_pCodecModule->SetBmpModule(pdfium::MakeUnique<CCodec_BmpModule>());
+#endif
+
+#ifdef PDF_ENABLE_XFA_GIF
+  m_pCodecModule->SetGifModule(pdfium::MakeUnique<CCodec_GifModule>());
+#endif
+
+#ifdef PDF_ENABLE_XFA_PNG
+  m_pCodecModule->SetPngModule(pdfium::MakeUnique<CCodec_PngModule>());
+#endif
+
+#ifdef PDF_ENABLE_XFA_TIFF
+  m_pCodecModule->SetTiffModule(pdfium::MakeUnique<CCodec_TiffModule>());
+#endif
+}
+
+void CPDF_ModuleMgr::LoadEmbeddedMaps() {
+  LoadEmbeddedGB1CMaps();
+  LoadEmbeddedCNS1CMaps();
+  LoadEmbeddedJapan1CMaps();
+  LoadEmbeddedKorea1CMaps();
+}
+
+void CPDF_ModuleMgr::LoadEmbeddedGB1CMaps() {
+  CPDF_FontGlobals* pFontGlobals =
+      CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
+  pFontGlobals->SetEmbeddedCharset(
+      CIDSET_GB1,
+      pdfium::make_span(g_FXCMAP_GB1_cmaps, g_FXCMAP_GB1_cmaps_size));
+  pFontGlobals->SetEmbeddedToUnicode(CIDSET_GB1, g_FXCMAP_GB1CID2Unicode_5);
+}
+
+void CPDF_ModuleMgr::LoadEmbeddedCNS1CMaps() {
+  CPDF_FontGlobals* pFontGlobals =
+      CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
+  pFontGlobals->SetEmbeddedCharset(
+      CIDSET_CNS1,
+      pdfium::make_span(g_FXCMAP_CNS1_cmaps, g_FXCMAP_CNS1_cmaps_size));
+  pFontGlobals->SetEmbeddedToUnicode(CIDSET_CNS1, g_FXCMAP_CNS1CID2Unicode_5);
+}
+
+void CPDF_ModuleMgr::LoadEmbeddedJapan1CMaps() {
+  CPDF_FontGlobals* pFontGlobals =
+      CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
+  pFontGlobals->SetEmbeddedCharset(
+      CIDSET_JAPAN1,
+      pdfium::make_span(g_FXCMAP_Japan1_cmaps, g_FXCMAP_Japan1_cmaps_size));
+  pFontGlobals->SetEmbeddedToUnicode(CIDSET_JAPAN1,
+                                     g_FXCMAP_Japan1CID2Unicode_4);
+}
+
+void CPDF_ModuleMgr::LoadEmbeddedKorea1CMaps() {
+  CPDF_FontGlobals* pFontGlobals =
+      CPDF_ModuleMgr::Get()->GetPageModule()->GetFontGlobals();
+  pFontGlobals->SetEmbeddedCharset(
+      CIDSET_KOREA1,
+      pdfium::make_span(g_FXCMAP_Korea1_cmaps, g_FXCMAP_Korea1_cmaps_size));
+  pFontGlobals->SetEmbeddedToUnicode(CIDSET_KOREA1,
+                                     g_FXCMAP_Korea1CID2Unicode_2);
+}
diff --git a/core/fpdfapi/cpdf_modulemgr.h b/core/fpdfapi/cpdf_modulemgr.h
index 6b83bc7..39acfed 100644
--- a/core/fpdfapi/cpdf_modulemgr.h
+++ b/core/fpdfapi/cpdf_modulemgr.h
@@ -60,11 +60,10 @@
   CPDF_ModuleMgr();
   ~CPDF_ModuleMgr();
 
-  void InitCodecModule();
   void InitPageModule();
-  void LoadEmbeddedMaps();
+  void InitCodecModule();
   void LoadCodecModules();
-
+  void LoadEmbeddedMaps();
   void LoadEmbeddedGB1CMaps();
   void LoadEmbeddedCNS1CMaps();
   void LoadEmbeddedJapan1CMaps();