From ddffb57cf9763e2612e9f6f5730f334691adb692 Mon Sep 17 00:00:00 2001 From: tsepez Date: Tue, 24 May 2016 16:20:29 -0700 Subject: Remove CFX_PrivateData from CPDF_ModuleMgr Its only used to store one object, so replace it with a unique_ptr to a class with a virtual dtor. Rename the prototypical class with virtual dtor from CFX_DestructObject to CFX_Deletable. Rename the fx_basic_module.cpp to cfx_modulemgr.cpp to match the one class in it. Review-Url: https://codereview.chromium.org/2013483003 --- core/fpdfapi/cpdf_modulemgr.cpp | 61 ++++++++++++++++++++++++++++++ core/fpdfapi/fpdf_basic_module.cpp | 71 ----------------------------------- core/fpdfapi/include/cpdf_modulemgr.h | 19 +++++----- 3 files changed, 70 insertions(+), 81 deletions(-) create mode 100644 core/fpdfapi/cpdf_modulemgr.cpp delete mode 100644 core/fpdfapi/fpdf_basic_module.cpp (limited to 'core/fpdfapi') diff --git a/core/fpdfapi/cpdf_modulemgr.cpp b/core/fpdfapi/cpdf_modulemgr.cpp new file mode 100644 index 0000000000..fe5368d3f7 --- /dev/null +++ b/core/fpdfapi/cpdf_modulemgr.cpp @@ -0,0 +1,61 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#include "core/fpdfapi/include/cpdf_modulemgr.h" + +#include "core/fpdfapi/fpdf_page/cpdf_pagemodule.h" +#include "core/fxcodec/include/fx_codec.h" + +namespace { + +CPDF_ModuleMgr* g_FPDFAPI_pDefaultMgr = nullptr; + +} // namespace + +// static +CPDF_ModuleMgr* CPDF_ModuleMgr::Get() { + return g_FPDFAPI_pDefaultMgr; +} + +// static +void CPDF_ModuleMgr::Create() { + ASSERT(!g_FPDFAPI_pDefaultMgr); + g_FPDFAPI_pDefaultMgr = new CPDF_ModuleMgr; +} + +// static +void CPDF_ModuleMgr::Destroy() { + delete g_FPDFAPI_pDefaultMgr; + g_FPDFAPI_pDefaultMgr = nullptr; +} + +CPDF_ModuleMgr::CPDF_ModuleMgr() : m_pCodecModule(nullptr) {} + +CPDF_ModuleMgr::~CPDF_ModuleMgr() {} + +CCodec_FaxModule* CPDF_ModuleMgr::GetFaxModule() { + return m_pCodecModule ? m_pCodecModule->GetFaxModule() : nullptr; +} + +CCodec_JpegModule* CPDF_ModuleMgr::GetJpegModule() { + return m_pCodecModule ? m_pCodecModule->GetJpegModule() : nullptr; +} + +CCodec_JpxModule* CPDF_ModuleMgr::GetJpxModule() { + return m_pCodecModule ? m_pCodecModule->GetJpxModule() : nullptr; +} + +CCodec_Jbig2Module* CPDF_ModuleMgr::GetJbig2Module() { + return m_pCodecModule ? m_pCodecModule->GetJbig2Module() : nullptr; +} + +CCodec_IccModule* CPDF_ModuleMgr::GetIccModule() { + return m_pCodecModule ? m_pCodecModule->GetIccModule() : nullptr; +} + +CCodec_FlateModule* CPDF_ModuleMgr::GetFlateModule() { + return m_pCodecModule ? m_pCodecModule->GetFlateModule() : nullptr; +} diff --git a/core/fpdfapi/fpdf_basic_module.cpp b/core/fpdfapi/fpdf_basic_module.cpp deleted file mode 100644 index 75450bf975..0000000000 --- a/core/fpdfapi/fpdf_basic_module.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#include "core/fpdfapi/include/cpdf_modulemgr.h" - -#include "core/fpdfapi/fpdf_page/cpdf_pagemodule.h" -#include "core/fxcodec/include/fx_codec.h" - -namespace { - -CPDF_ModuleMgr* g_FPDFAPI_pDefaultMgr = nullptr; - -} // namespace - -// static -CPDF_ModuleMgr* CPDF_ModuleMgr::Get() { - return g_FPDFAPI_pDefaultMgr; -} - -// static -void CPDF_ModuleMgr::Create() { - ASSERT(!g_FPDFAPI_pDefaultMgr); - g_FPDFAPI_pDefaultMgr = new CPDF_ModuleMgr; -} - -// static -void CPDF_ModuleMgr::Destroy() { - delete g_FPDFAPI_pDefaultMgr; - g_FPDFAPI_pDefaultMgr = nullptr; -} - -CPDF_ModuleMgr::CPDF_ModuleMgr() : m_pCodecModule(nullptr) {} - -CPDF_ModuleMgr::~CPDF_ModuleMgr() {} - -void CPDF_ModuleMgr::SetPrivateData(void* module_id, - void* pData, - PD_CALLBACK_FREEDATA callback) { - m_privateData.SetPrivateData(module_id, pData, callback); -} - -void* CPDF_ModuleMgr::GetPrivateData(void* module_id) { - return m_privateData.GetPrivateData(module_id); -} - -CCodec_FaxModule* CPDF_ModuleMgr::GetFaxModule() { - return m_pCodecModule ? m_pCodecModule->GetFaxModule() : nullptr; -} - -CCodec_JpegModule* CPDF_ModuleMgr::GetJpegModule() { - return m_pCodecModule ? m_pCodecModule->GetJpegModule() : nullptr; -} - -CCodec_JpxModule* CPDF_ModuleMgr::GetJpxModule() { - return m_pCodecModule ? m_pCodecModule->GetJpxModule() : nullptr; -} - -CCodec_Jbig2Module* CPDF_ModuleMgr::GetJbig2Module() { - return m_pCodecModule ? m_pCodecModule->GetJbig2Module() : nullptr; -} - -CCodec_IccModule* CPDF_ModuleMgr::GetIccModule() { - return m_pCodecModule ? m_pCodecModule->GetIccModule() : nullptr; -} - -CCodec_FlateModule* CPDF_ModuleMgr::GetFlateModule() { - return m_pCodecModule ? m_pCodecModule->GetFlateModule() : nullptr; -} diff --git a/core/fpdfapi/include/cpdf_modulemgr.h b/core/fpdfapi/include/cpdf_modulemgr.h index e54bd07a90..95c5385e64 100644 --- a/core/fpdfapi/include/cpdf_modulemgr.h +++ b/core/fpdfapi/include/cpdf_modulemgr.h @@ -11,14 +11,13 @@ #include "core/fxcrt/include/fx_basic.h" -class CCodec_ModuleMgr; class CCodec_FaxModule; class CCodec_FlateModule; class CCodec_IccModule; class CCodec_Jbig2Module; class CCodec_JpegModule; class CCodec_JpxModule; - +class CCodec_ModuleMgr; class CPDF_PageModule; class CPDF_ModuleMgr { @@ -32,9 +31,15 @@ class CPDF_ModuleMgr { CCodec_ModuleMgr* GetCodecModule() { return m_pCodecModule; } void InitPageModule(); - CPDF_PageModule* GetPageModule() const { return m_pPageModule.get(); } + void SetUnsupportInfoAdapter(std::unique_ptr pAdapter) { + m_pUnsupportInfoAdapter = std::move(pAdapter); + } + CFX_Deletable* GetUnsupportInfoAdapter() const { + return m_pUnsupportInfoAdapter.get(); + } + void LoadEmbeddedGB1CMaps(); void LoadEmbeddedCNS1CMaps(); void LoadEmbeddedJapan1CMaps(); @@ -47,19 +52,13 @@ class CPDF_ModuleMgr { CCodec_IccModule* GetIccModule(); CCodec_FlateModule* GetFlateModule(); - void SetPrivateData(void* module_id, - void* pData, - PD_CALLBACK_FREEDATA callback); - - void* GetPrivateData(void* module_id); - private: CPDF_ModuleMgr(); ~CPDF_ModuleMgr(); CCodec_ModuleMgr* m_pCodecModule; std::unique_ptr m_pPageModule; - CFX_PrivateData m_privateData; + std::unique_ptr m_pUnsupportInfoAdapter; }; #endif // CORE_FPDFAPI_INCLUDE_CPDF_MODULEMGR_H_ -- cgit v1.2.3