Remove CPDF_CMapParser friends

This CL removes the friends from CPDF_CMapParser. The two needed methods
have been moved from private statics to public methods on the class.

Change-Id: Ida76aa8748435e089874d9ef9c6545527b175561
Reviewed-on: https://pdfium-review.googlesource.com/15454
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/core/fpdfapi/font/cpdf_cmapparser.cpp b/core/fpdfapi/font/cpdf_cmapparser.cpp
index 4c74761..fbd6daf 100644
--- a/core/fpdfapi/font/cpdf_cmapparser.cpp
+++ b/core/fpdfapi/font/cpdf_cmapparser.cpp
@@ -70,7 +70,7 @@
     m_CodeSeq = 0;
   } else if (word == "usecmap") {
   } else if (m_Status == 1 || m_Status == 2) {
-    m_CodePoints[m_CodeSeq] = CMap_GetCode(word);
+    m_CodePoints[m_CodeSeq] = GetCode(word);
     m_CodeSeq++;
     uint32_t StartCode, EndCode;
     uint16_t StartCID;
@@ -106,7 +106,7 @@
   } else if (m_Status == 5) {
     m_Status = 0;
   } else if (m_Status == 6) {
-    m_pCMap->SetVertical(CMap_GetCode(word) != 0);
+    m_pCMap->SetVertical(GetCode(word) != 0);
     m_Status = 0;
   } else if (m_Status == 7) {
     if (word == "endcodespacerange") {
@@ -126,7 +126,7 @@
       }
       if (m_CodeSeq % 2) {
         CPDF_CMap::CodeRange range;
-        if (CMap_GetCodeRange(range, m_LastWord.AsStringView(), word))
+        if (GetCodeRange(range, m_LastWord.AsStringView(), word))
           m_CodeRanges.push_back(range);
       }
       m_CodeSeq++;
@@ -135,10 +135,10 @@
   m_LastWord = word;
 }
 
-// Static.
-uint32_t CPDF_CMapParser::CMap_GetCode(const ByteStringView& word) {
+uint32_t CPDF_CMapParser::GetCode(const ByteStringView& word) const {
   if (word.IsEmpty())
     return 0;
+
   pdfium::base::CheckedNumeric<uint32_t> num = 0;
   if (word[0] == '<') {
     for (size_t i = 1; i < word.GetLength() && std::isxdigit(word[i]); ++i) {
@@ -157,10 +157,9 @@
   return num.ValueOrDie();
 }
 
-// Static.
-bool CPDF_CMapParser::CMap_GetCodeRange(CPDF_CMap::CodeRange& range,
-                                        const ByteStringView& first,
-                                        const ByteStringView& second) {
+bool CPDF_CMapParser::GetCodeRange(CPDF_CMap::CodeRange& range,
+                                   const ByteStringView& first,
+                                   const ByteStringView& second) const {
   if (first.GetLength() == 0 || first[0] != '<')
     return false;
 
diff --git a/core/fpdfapi/font/cpdf_cmapparser.h b/core/fpdfapi/font/cpdf_cmapparser.h
index 874f6a7..fc46c58 100644
--- a/core/fpdfapi/font/cpdf_cmapparser.h
+++ b/core/fpdfapi/font/cpdf_cmapparser.h
@@ -28,16 +28,14 @@
     return std::move(m_AdditionalCharcodeToCIDMappings);
   }
 
+  uint32_t GetCode(const ByteStringView& word) const;
+  bool GetCodeRange(CPDF_CMap::CodeRange& range,
+                    const ByteStringView& first,
+                    const ByteStringView& second) const;
+
   static CIDSet CharsetFromOrdering(const ByteStringView& ordering);
 
  private:
-  friend class cpdf_cmapparser_CMap_GetCode_Test;
-  friend class cpdf_cmapparser_CMap_GetCodeRange_Test;
-
-  static uint32_t CMap_GetCode(const ByteStringView& word);
-  static bool CMap_GetCodeRange(CPDF_CMap::CodeRange& range,
-                                const ByteStringView& first,
-                                const ByteStringView& second);
 
   UnownedPtr<CPDF_CMap> const m_pCMap;
   int m_Status;
diff --git a/core/fpdfapi/font/cpdf_cmapparser_unittest.cpp b/core/fpdfapi/font/cpdf_cmapparser_unittest.cpp
index 8d99b0d..1a36eb7 100644
--- a/core/fpdfapi/font/cpdf_cmapparser_unittest.cpp
+++ b/core/fpdfapi/font/cpdf_cmapparser_unittest.cpp
@@ -18,37 +18,39 @@
 
 }  // namespace
 
-TEST(cpdf_cmapparser, CMap_GetCode) {
-  EXPECT_EQ(0u, CPDF_CMapParser::CMap_GetCode(""));
-  EXPECT_EQ(0u, CPDF_CMapParser::CMap_GetCode("<"));
-  EXPECT_EQ(194u, CPDF_CMapParser::CMap_GetCode("<c2"));
-  EXPECT_EQ(162u, CPDF_CMapParser::CMap_GetCode("<A2"));
-  EXPECT_EQ(2802u, CPDF_CMapParser::CMap_GetCode("<Af2"));
-  EXPECT_EQ(162u, CPDF_CMapParser::CMap_GetCode("<A2z"));
+TEST(cpdf_cmapparser, GetCode) {
+  CPDF_CMapParser parser(nullptr);
 
-  EXPECT_EQ(12u, CPDF_CMapParser::CMap_GetCode("12"));
-  EXPECT_EQ(12u, CPDF_CMapParser::CMap_GetCode("12d"));
-  EXPECT_EQ(128u, CPDF_CMapParser::CMap_GetCode("128"));
+  EXPECT_EQ(0u, parser.GetCode(""));
+  EXPECT_EQ(0u, parser.GetCode("<"));
+  EXPECT_EQ(194u, parser.GetCode("<c2"));
+  EXPECT_EQ(162u, parser.GetCode("<A2"));
+  EXPECT_EQ(2802u, parser.GetCode("<Af2"));
+  EXPECT_EQ(162u, parser.GetCode("<A2z"));
 
-  EXPECT_EQ(4294967295u, CPDF_CMapParser::CMap_GetCode("<FFFFFFFF"));
+  EXPECT_EQ(12u, parser.GetCode("12"));
+  EXPECT_EQ(12u, parser.GetCode("12d"));
+  EXPECT_EQ(128u, parser.GetCode("128"));
+
+  EXPECT_EQ(4294967295u, parser.GetCode("<FFFFFFFF"));
 
   // Overflow a uint32_t.
-  EXPECT_EQ(0u, CPDF_CMapParser::CMap_GetCode("<100000000"));
+  EXPECT_EQ(0u, parser.GetCode("<100000000"));
 }
 
-TEST(cpdf_cmapparser, CMap_GetCodeRange) {
+TEST(cpdf_cmapparser, GetCodeRange) {
+  CPDF_CMapParser parser(nullptr);
   CPDF_CMap::CodeRange range;
 
   // Must start with a <
-  EXPECT_FALSE(CPDF_CMapParser::CMap_GetCodeRange(range, "", ""));
-  EXPECT_FALSE(CPDF_CMapParser::CMap_GetCodeRange(range, "A", ""));
+  EXPECT_FALSE(parser.GetCodeRange(range, "", ""));
+  EXPECT_FALSE(parser.GetCodeRange(range, "A", ""));
 
   // m_CharSize must be <= 4
-  EXPECT_FALSE(CPDF_CMapParser::CMap_GetCodeRange(range, "<aaaaaaaaaa>", ""));
+  EXPECT_FALSE(parser.GetCodeRange(range, "<aaaaaaaaaa>", ""));
   EXPECT_EQ(5u, range.m_CharSize);
 
-  EXPECT_TRUE(
-      CPDF_CMapParser::CMap_GetCodeRange(range, "<12345678>", "<87654321>"));
+  EXPECT_TRUE(parser.GetCodeRange(range, "<12345678>", "<87654321>"));
   EXPECT_EQ(4u, range.m_CharSize);
   {
     uint8_t lower[4] = {18, 52, 86, 120};
@@ -58,13 +60,13 @@
   }
 
   // Hex characters
-  EXPECT_TRUE(CPDF_CMapParser::CMap_GetCodeRange(range, "<a1>", "<F3>"));
+  EXPECT_TRUE(parser.GetCodeRange(range, "<a1>", "<F3>"));
   EXPECT_EQ(1u, range.m_CharSize);
   EXPECT_EQ(161, range.m_Lower[0]);
   EXPECT_EQ(243, range.m_Upper[0]);
 
   // The second string should return 0's if it is shorter
-  EXPECT_TRUE(CPDF_CMapParser::CMap_GetCodeRange(range, "<a1>", ""));
+  EXPECT_TRUE(parser.GetCodeRange(range, "<a1>", ""));
   EXPECT_EQ(1u, range.m_CharSize);
   EXPECT_EQ(161, range.m_Lower[0]);
   EXPECT_EQ(0, range.m_Upper[0]);