De-virtualize CFWL_FontManager and CFWL_FontData.

They aren't subclassed.

-- replace a static member variable with a global in the .cpp
   file's anonymous namespace.

Change-Id: I64581f98d9bccec45928701f0c19a260c340a6ce
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/58232
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fwl/theme/cfwl_widgettp.cpp b/xfa/fwl/theme/cfwl_widgettp.cpp
index e85994a..b8aa2a8 100644
--- a/xfa/fwl/theme/cfwl_widgettp.cpp
+++ b/xfa/fwl/theme/cfwl_widgettp.cpp
@@ -24,6 +24,12 @@
 #include "xfa/fxgraphics/cxfa_gepath.h"
 #include "xfa/fxgraphics/cxfa_geshading.h"
 
+namespace {
+
+CFWL_FontManager* g_FontManager = nullptr;
+
+}  // namespace
+
 CFWL_WidgetTP::CFWL_WidgetTP() = default;
 
 CFWL_WidgetTP::~CFWL_WidgetTP() = default;
@@ -261,21 +267,20 @@
   return m_pFont;
 }
 
-CFWL_FontManager* CFWL_FontManager::s_FontManager = nullptr;
 CFWL_FontManager* CFWL_FontManager::GetInstance() {
-  if (!s_FontManager)
-    s_FontManager = new CFWL_FontManager;
-  return s_FontManager;
+  if (!g_FontManager)
+    g_FontManager = new CFWL_FontManager;
+  return g_FontManager;
 }
 
 void CFWL_FontManager::DestroyInstance() {
-  delete s_FontManager;
-  s_FontManager = nullptr;
+  delete g_FontManager;
+  g_FontManager = nullptr;
 }
 
-CFWL_FontManager::CFWL_FontManager() {}
+CFWL_FontManager::CFWL_FontManager() = default;
 
-CFWL_FontManager::~CFWL_FontManager() {}
+CFWL_FontManager::~CFWL_FontManager() = default;
 
 RetainPtr<CFGAS_GEFont> CFWL_FontManager::FindFont(WideStringView wsFontFamily,
                                                    uint32_t dwFontStyles,
diff --git a/xfa/fwl/theme/cfwl_widgettp.h b/xfa/fwl/theme/cfwl_widgettp.h
index 6bb60ea..28e206f 100644
--- a/xfa/fwl/theme/cfwl_widgettp.h
+++ b/xfa/fwl/theme/cfwl_widgettp.h
@@ -81,10 +81,10 @@
   std::unique_ptr<CColorData> m_pColorData;
 };
 
-class CFWL_FontData {
+class CFWL_FontData final {
  public:
   CFWL_FontData();
-  virtual ~CFWL_FontData();
+  ~CFWL_FontData();
 
   bool Equal(WideStringView wsFontFamily,
              uint32_t dwFontStyles,
@@ -102,7 +102,7 @@
   RetainPtr<CFGAS_GEFont> m_pFont;
 };
 
-class CFWL_FontManager {
+class CFWL_FontManager final {
  public:
   static CFWL_FontManager* GetInstance();
   static void DestroyInstance();
@@ -111,11 +111,10 @@
                                    uint32_t dwFontStyles,
                                    uint16_t dwCodePage);
 
- protected:
+ private:
   CFWL_FontManager();
-  virtual ~CFWL_FontManager();
+  ~CFWL_FontManager();
 
-  static CFWL_FontManager* s_FontManager;
   std::vector<std::unique_ptr<CFWL_FontData>> m_FontsArray;
 };