Clean up various cmap code.
- Fold CPDF_CID2UnicodeMap::Load() into ctor.
- Fix nits in CPDF_CID2UnicodeMap.
- Remove impossible check for GetPredefinedCMap() returning nullptr.
- Fold CPDF_CMapManager::LoadCID2UnicodeMap() into GetCID2UnicodeMap().
- Move CPDF_CMapManager::LoadPredefinedCMap() into anonymous namespace.
- Use |CIDSET_NUM_SETS| constant where appropriate.
Change-Id: Ic7d45de38f67d2ec1702844e1e77aef31529089d
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/59252
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/font/cpdf_cmapmanager.cpp b/core/fpdfapi/font/cpdf_cmapmanager.cpp
index bc47ad0..653af0c 100644
--- a/core/fpdfapi/font/cpdf_cmapmanager.cpp
+++ b/core/fpdfapi/font/cpdf_cmapmanager.cpp
@@ -12,6 +12,16 @@
#include "core/fpdfapi/font/cpdf_cmap.h"
#include "third_party/base/ptr_util.h"
+namespace {
+
+RetainPtr<const CPDF_CMap> LoadPredefinedCMap(ByteString name) {
+ if (!name.IsEmpty() && name[0] == '/')
+ name = name.Right(name.GetLength() - 1);
+ return pdfium::MakeRetain<CPDF_CMap>(name);
+}
+
+} // namespace
+
CPDF_CMapManager::CPDF_CMapManager() = default;
CPDF_CMapManager::~CPDF_CMapManager() = default;
@@ -29,23 +39,10 @@
return pCMap;
}
-RetainPtr<const CPDF_CMap> CPDF_CMapManager::LoadPredefinedCMap(
- ByteString name) {
- if (!name.IsEmpty() && name[0] == '/')
- name = name.Right(name.GetLength() - 1);
- return pdfium::MakeRetain<CPDF_CMap>(name);
-}
-
CPDF_CID2UnicodeMap* CPDF_CMapManager::GetCID2UnicodeMap(CIDSet charset) {
- if (!m_CID2UnicodeMaps[charset])
- m_CID2UnicodeMaps[charset] = LoadCID2UnicodeMap(charset);
-
+ if (!m_CID2UnicodeMaps[charset]) {
+ m_CID2UnicodeMaps[charset] =
+ pdfium::MakeUnique<CPDF_CID2UnicodeMap>(charset);
+ }
return m_CID2UnicodeMaps[charset].get();
}
-
-std::unique_ptr<CPDF_CID2UnicodeMap> CPDF_CMapManager::LoadCID2UnicodeMap(
- CIDSet charset) {
- auto pMap = pdfium::MakeUnique<CPDF_CID2UnicodeMap>();
- pMap->Load(charset);
- return pMap;
-}