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;
};