Clean up CBA_FontMap.

- Move CBA_FontMap_Foo structs into CBA_FontMap.
- Inline a method with only 1 caller.
- Make a public method private.
- Remove checks for nullptr in |m_Data|. This cannot happen.

Change-Id: I17b9cba2cf50a9881787bee314caad358329f60c
Reviewed-on: https://pdfium-review.googlesource.com/c/47171
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/formfiller/cba_fontmap.cpp b/fpdfsdk/formfiller/cba_fontmap.cpp
index 841468e..923548e 100644
--- a/fpdfsdk/formfiller/cba_fontmap.cpp
+++ b/fpdfsdk/formfiller/cba_fontmap.cpp
@@ -42,16 +42,14 @@
 }
 
 CPDF_Font* CBA_FontMap::GetPDFFont(int32_t nFontIndex) {
-  if (pdfium::IndexInBounds(m_Data, nFontIndex) && m_Data[nFontIndex])
+  if (pdfium::IndexInBounds(m_Data, nFontIndex))
     return m_Data[nFontIndex]->pFont;
-
   return nullptr;
 }
 
 ByteString CBA_FontMap::GetPDFFontAlias(int32_t nFontIndex) {
-  if (pdfium::IndexInBounds(m_Data, nFontIndex) && m_Data[nFontIndex])
+  if (pdfium::IndexInBounds(m_Data, nFontIndex))
     return m_Data[nFontIndex]->sFontName;
-
   return ByteString();
 }
 
@@ -62,7 +60,8 @@
     if (KnowWord(nFontIndex, word))
       return nFontIndex;
   } else {
-    if (const CBA_FontMap_Data* pData = GetFontMapData(0)) {
+    if (!m_Data.empty()) {
+      const Data* pData = m_Data.front().get();
       if (nCharset == FX_CHARSET_Default ||
           pData->nCharset == FX_CHARSET_Symbol || nCharset == pData->nCharset) {
         if (KnowWord(0, word))
@@ -90,8 +89,8 @@
   if (!pdfium::IndexInBounds(m_Data, nFontIndex))
     return -1;
 
-  CBA_FontMap_Data* pData = m_Data[nFontIndex].get();
-  if (!pData || !pData->pFont)
+  Data* pData = m_Data[nFontIndex].get();
+  if (!pData->pFont)
     return -1;
 
   if (pData->pFont->IsUnicodeCompatible())
@@ -112,31 +111,10 @@
   return CFX_Font::GetCharSetFromUnicode(word);
 }
 
-const CBA_FontMap_Data* CBA_FontMap::GetFontMapData(int32_t nIndex) const {
-  return pdfium::IndexInBounds(m_Data, nIndex) ? m_Data[nIndex].get() : nullptr;
-}
-
 int32_t CBA_FontMap::GetNativeCharset() {
   return FX_GetCharsetFromCodePage(FXSYS_GetACP());
 }
 
-ByteString CBA_FontMap::GetNativeFontName(int32_t nCharset) {
-  for (const auto& pData : m_NativeFont) {
-    if (pData && pData->nCharset == nCharset)
-      return pData->sFontName;
-  }
-
-  ByteString sNew = GetNativeFont(nCharset);
-  if (sNew.IsEmpty())
-    return ByteString();
-
-  auto pNewData = pdfium::MakeUnique<CBA_FontMap_Native>();
-  pNewData->nCharset = nCharset;
-  pNewData->sFontName = sNew;
-  m_NativeFont.push_back(std::move(pNewData));
-  return sNew;
-}
-
 void CBA_FontMap::Reset() {
   Empty();
   m_pDefaultFont = nullptr;
@@ -341,7 +319,7 @@
 }
 
 bool CBA_FontMap::KnowWord(int32_t nFontIndex, uint16_t word) {
-  return pdfium::IndexInBounds(m_Data, nFontIndex) && m_Data[nFontIndex] &&
+  return pdfium::IndexInBounds(m_Data, nFontIndex) &&
          CharCodeFromUnicode(nFontIndex, word) >= 0;
 }
 
@@ -371,7 +349,7 @@
 int32_t CBA_FontMap::AddFontData(CPDF_Font* pFont,
                                  const ByteString& sFontAlias,
                                  int32_t nCharset) {
-  auto pNewData = pdfium::MakeUnique<CBA_FontMap_Data>();
+  auto pNewData = pdfium::MakeUnique<Data>();
   pNewData->pFont = pFont;
   pNewData->sFontName = sFontAlias;
   pNewData->nCharset = nCharset;
@@ -393,8 +371,7 @@
 int32_t CBA_FontMap::FindFont(const ByteString& sFontName, int32_t nCharset) {
   int32_t i = 0;
   for (const auto& pData : m_Data) {
-    if (pData &&
-        (nCharset == FX_CHARSET_Default || nCharset == pData->nCharset) &&
+    if ((nCharset == FX_CHARSET_Default || nCharset == pData->nCharset) &&
         (sFontName.IsEmpty() || pData->sFontName == sFontName)) {
       return i;
     }
@@ -414,6 +391,23 @@
   return sFontName;
 }
 
+ByteString CBA_FontMap::GetNativeFontName(int32_t nCharset) {
+  for (const auto& pData : m_NativeFont) {
+    if (pData && pData->nCharset == nCharset)
+      return pData->sFontName;
+  }
+
+  ByteString sNew = GetNativeFont(nCharset);
+  if (sNew.IsEmpty())
+    return ByteString();
+
+  auto pNewData = pdfium::MakeUnique<Native>();
+  pNewData->nCharset = nCharset;
+  pNewData->sFontName = sNew;
+  m_NativeFont.push_back(std::move(pNewData));
+  return sNew;
+}
+
 CPDF_Font* CBA_FontMap::AddFontToDocument(CPDF_Document* pDoc,
                                           ByteString& sFontName,
                                           uint8_t nCharset) {
diff --git a/fpdfsdk/formfiller/cba_fontmap.h b/fpdfsdk/formfiller/cba_fontmap.h
index bd14c31..6ae7d7d 100644
--- a/fpdfsdk/formfiller/cba_fontmap.h
+++ b/fpdfsdk/formfiller/cba_fontmap.h
@@ -20,17 +20,6 @@
 class CPDF_Dictionary;
 class CPDF_Document;
 
-struct CBA_FontMap_Data {
-  CPDF_Font* pFont;
-  int32_t nCharset;
-  ByteString sFontName;
-};
-
-struct CBA_FontMap_Native {
-  int32_t nCharset;
-  ByteString sFontName;
-};
-
 class CBA_FontMap final : public IPVT_FontMap {
  public:
   CBA_FontMap(CPDFSDK_Annot* pAnnot, CFX_SystemHandler* pSystemHandler);
@@ -45,15 +34,24 @@
   int32_t CharCodeFromUnicode(int32_t nFontIndex, uint16_t word) override;
   int32_t CharSetFromUnicode(uint16_t word, int32_t nOldCharset) override;
 
-  const CBA_FontMap_Data* GetFontMapData(int32_t nIndex) const;
   static int32_t GetNativeCharset();
-  ByteString GetNativeFontName(int32_t nCharset);
 
   void Reset();
   void SetDefaultFont(CPDF_Font* pFont, const ByteString& sFontName);
   void SetAPType(const ByteString& sAPType);
 
  private:
+  struct Data {
+    CPDF_Font* pFont;
+    int32_t nCharset;
+    ByteString sFontName;
+  };
+
+  struct Native {
+    int32_t nCharset;
+    ByteString sFontName;
+  };
+
   void Initialize();
   CPDF_Font* FindFontSameCharset(ByteString* sFontAlias, int32_t nCharset);
 
@@ -78,6 +76,7 @@
 
   int32_t FindFont(const ByteString& sFontName, int32_t nCharset);
   ByteString GetNativeFont(int32_t nCharset);
+  ByteString GetNativeFontName(int32_t nCharset);
   CPDF_Font* AddFontToDocument(CPDF_Document* pDoc,
                                ByteString& sFontName,
                                uint8_t nCharset);
@@ -87,8 +86,8 @@
                            ByteString& sFontName,
                            uint8_t nCharset);
 
-  std::vector<std::unique_ptr<CBA_FontMap_Data>> m_Data;
-  std::vector<std::unique_ptr<CBA_FontMap_Native>> m_NativeFont;
+  std::vector<std::unique_ptr<Data>> m_Data;
+  std::vector<std::unique_ptr<Native>> m_NativeFont;
   UnownedPtr<CFX_SystemHandler> const m_pSystemHandler;
   UnownedPtr<CPDF_Document> const m_pDocument;
   UnownedPtr<CPDF_Dictionary> const m_pAnnotDict;