diff options
author | Dan Sinclair <dsinclair@chromium.org> | 2018-03-27 19:36:04 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-03-27 19:36:04 +0000 |
commit | e6ce3428fce89f17e2e416adc567a401901f340b (patch) | |
tree | e8341b8deb3856e0a566743671a9ff80a55ce911 | |
parent | 43a25e87afb9b91fd7c0cae2a3429da104d58988 (diff) | |
download | pdfium-e6ce3428fce89f17e2e416adc567a401901f340b.tar.xz |
Simplify some XFA font manager creationchromium/3382
For the cases where we always initialize the font managers, do it in the
constructor instead of as a secondary call.
Change-Id: Ic59b331d1eb357878cd5786b187b5b79bace4498
Reviewed-on: https://pdfium-review.googlesource.com/29291
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
-rw-r--r-- | fpdfsdk/fpdfxfa/cpdfxfa_context.cpp | 1 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_ffapp.cpp | 11 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_ffapp.h | 8 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_fontmgr.cpp | 21 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_fontmgr.h | 3 |
5 files changed, 13 insertions, 31 deletions
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp index 79599e15dc..18f5f99b0e 100644 --- a/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp +++ b/fpdfsdk/fpdfxfa/cpdfxfa_context.cpp @@ -40,7 +40,6 @@ CPDFXFA_Context::CPDFXFA_Context(std::unique_ptr<CPDF_Document> pPDFDoc) : m_pPDFDoc(std::move(pPDFDoc)), m_pXFAApp(pdfium::MakeUnique<CXFA_FFApp>(this)), m_DocEnv(this) { - m_pXFAApp->SetDefaultFontMgr(pdfium::MakeUnique<CFGAS_DefaultFontManager>()); } CPDFXFA_Context::~CPDFXFA_Context() { diff --git a/xfa/fxfa/cxfa_ffapp.cpp b/xfa/fxfa/cxfa_ffapp.cpp index 881d05d6b9..21ac081629 100644 --- a/xfa/fxfa/cxfa_ffapp.cpp +++ b/xfa/fxfa/cxfa_ffapp.cpp @@ -53,17 +53,6 @@ std::unique_ptr<CXFA_FFDoc> CXFA_FFApp::CreateDoc( return pDoc; } -void CXFA_FFApp::SetDefaultFontMgr( - std::unique_ptr<CFGAS_DefaultFontManager> pFontMgr) { - if (!m_pFontMgr) - m_pFontMgr = pdfium::MakeUnique<CXFA_FontMgr>(); - m_pFontMgr->SetDefFontMgr(std::move(pFontMgr)); -} - -CXFA_FontMgr* CXFA_FFApp::GetXFAFontMgr() const { - return m_pFontMgr.get(); -} - CFGAS_FontMgr* CXFA_FFApp::GetFDEFontMgr() { if (!m_pFDEFontMgr) { m_pFDEFontMgr = pdfium::MakeUnique<CFGAS_FontMgr>(); diff --git a/xfa/fxfa/cxfa_ffapp.h b/xfa/fxfa/cxfa_ffapp.h index b63f058367..bd4cf363fe 100644 --- a/xfa/fxfa/cxfa_ffapp.h +++ b/xfa/fxfa/cxfa_ffapp.h @@ -15,6 +15,7 @@ #include "core/fxcrt/retain_ptr.h" #include "core/fxcrt/unowned_ptr.h" #include "xfa/fwl/cfwl_app.h" +#include "xfa/fxfa/cxfa_fontmgr.h" #include "xfa/fxfa/fxfa.h" class CFGAS_DefaultFontManager; @@ -22,7 +23,6 @@ class CFGAS_FontMgr; class CFWL_WidgetMgr; class CPDF_Document; class CXFA_FFDocHandler; -class CXFA_FontMgr; class CXFA_FWLAdapterWidgetMgr; class CXFA_FWLTheme; class IFWL_AdapterTimerMgr; @@ -47,7 +47,7 @@ class CXFA_FFApp { IXFA_AppProvider* GetAppProvider() const { return m_pProvider.Get(); } const CFWL_App* GetFWLApp() const { return m_pFWLApp.get(); } IFWL_AdapterTimerMgr* GetTimerMgr() const; - CXFA_FontMgr* GetXFAFontMgr() const; + CXFA_FontMgr* GetXFAFontMgr() { return &m_pFontMgr; } void ClearEventTargets(); @@ -58,14 +58,14 @@ class CXFA_FFApp { // font manager. The GEFont::LoadFont call takes the manager as a param and // stores it internally. When you destroy the GEFont it tries to unregister // from the font manager and if the default font manager was destroyed first - // get get a use-after-free. The m_pFWLTheme can try to cleanup a GEFont + // you get a use-after-free. The m_pFWLTheme can try to cleanup a GEFont // when it frees, so make sure it gets cleaned up first. That requires // m_pFWLApp to be cleaned up as well. // // TODO(dsinclair): The GEFont should have the FontMgr as the pointer instead // of the DEFFontMgr so this goes away. Bug 561. std::unique_ptr<CFGAS_FontMgr> m_pFDEFontMgr; - std::unique_ptr<CXFA_FontMgr> m_pFontMgr; + CXFA_FontMgr m_pFontMgr; std::unique_ptr<CXFA_FWLAdapterWidgetMgr> m_pAdapterWidgetMgr; diff --git a/xfa/fxfa/cxfa_fontmgr.cpp b/xfa/fxfa/cxfa_fontmgr.cpp index 0956806698..7770825b26 100644 --- a/xfa/fxfa/cxfa_fontmgr.cpp +++ b/xfa/fxfa/cxfa_fontmgr.cpp @@ -19,9 +19,9 @@ #include "xfa/fxfa/cxfa_ffapp.h" #include "xfa/fxfa/cxfa_ffdoc.h" -CXFA_FontMgr::CXFA_FontMgr() {} +CXFA_FontMgr::CXFA_FontMgr() = default; -CXFA_FontMgr::~CXFA_FontMgr() {} +CXFA_FontMgr::~CXFA_FontMgr() = default; RetainPtr<CFGAS_GEFont> CXFA_FontMgr::GetFont( CXFA_FFDoc* hDoc, @@ -44,9 +44,9 @@ RetainPtr<CFGAS_GEFont> CXFA_FontMgr::GetFont( if (pFont) return pFont; } - if (!pFont && m_pDefFontMgr) - pFont = m_pDefFontMgr->GetFont(hDoc->GetApp()->GetFDEFontMgr(), - wsFontFamily, dwFontStyles); + if (!pFont) + pFont = m_pDefFontMgr.GetFont(hDoc->GetApp()->GetFDEFontMgr(), wsFontFamily, + dwFontStyles); if (!pFont && pMgr) { pPDFFont = nullptr; @@ -55,9 +55,9 @@ RetainPtr<CFGAS_GEFont> CXFA_FontMgr::GetFont( if (pFont) return pFont; } - if (!pFont && m_pDefFontMgr) { - pFont = m_pDefFontMgr->GetDefaultFont(hDoc->GetApp()->GetFDEFontMgr(), - wsFontFamily, dwFontStyles); + if (!pFont) { + pFont = m_pDefFontMgr.GetDefaultFont(hDoc->GetApp()->GetFDEFontMgr(), + wsFontFamily, dwFontStyles); } if (pFont) { @@ -69,8 +69,3 @@ RetainPtr<CFGAS_GEFont> CXFA_FontMgr::GetFont( } return pFont; } - -void CXFA_FontMgr::SetDefFontMgr( - std::unique_ptr<CFGAS_DefaultFontManager> pFontMgr) { - m_pDefFontMgr = std::move(pFontMgr); -} diff --git a/xfa/fxfa/cxfa_fontmgr.h b/xfa/fxfa/cxfa_fontmgr.h index a940fafc46..7d067bddb6 100644 --- a/xfa/fxfa/cxfa_fontmgr.h +++ b/xfa/fxfa/cxfa_fontmgr.h @@ -29,10 +29,9 @@ class CXFA_FontMgr { RetainPtr<CFGAS_GEFont> GetFont(CXFA_FFDoc* hDoc, const WideStringView& wsFontFamily, uint32_t dwFontStyles); - void SetDefFontMgr(std::unique_ptr<CFGAS_DefaultFontManager> pFontMgr); private: - std::unique_ptr<CFGAS_DefaultFontManager> m_pDefFontMgr; + CFGAS_DefaultFontManager m_pDefFontMgr; std::map<ByteString, RetainPtr<CFGAS_GEFont>> m_FontMap; }; |