From f52a65f6e7a328535a086b7d29c46938473bbebe Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 25 Apr 2017 14:29:00 -0700 Subject: Use unique_ptr in CFPF_SkiaDeviceModule Change-Id: Ie50deca34dd3c122efb483ef210f96798abe9e4e Reviewed-on: https://pdfium-review.googlesource.com/4498 Reviewed-by: Lei Zhang Commit-Queue: Tom Sepez --- core/fxge/android/cfpf_skiadevicemodule.cpp | 18 ++++++++++-------- core/fxge/android/cfpf_skiadevicemodule.h | 6 ++++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/core/fxge/android/cfpf_skiadevicemodule.cpp b/core/fxge/android/cfpf_skiadevicemodule.cpp index 7bdf64666f..bb3f70afa1 100644 --- a/core/fxge/android/cfpf_skiadevicemodule.cpp +++ b/core/fxge/android/cfpf_skiadevicemodule.cpp @@ -6,7 +6,10 @@ #include "core/fxge/android/cfpf_skiadevicemodule.h" +#include + #include "core/fxge/android/cfpf_skiafontmgr.h" +#include "third_party/base/ptr_util.h" namespace { @@ -20,9 +23,9 @@ CFPF_SkiaDeviceModule* CFPF_GetSkiaDeviceModule() { return gs_pPFModule; } -CFPF_SkiaDeviceModule::~CFPF_SkiaDeviceModule() { - delete m_pFontMgr; -} +CFPF_SkiaDeviceModule::CFPF_SkiaDeviceModule() {} + +CFPF_SkiaDeviceModule::~CFPF_SkiaDeviceModule() {} void CFPF_SkiaDeviceModule::Destroy() { delete gs_pPFModule; @@ -31,11 +34,10 @@ void CFPF_SkiaDeviceModule::Destroy() { CFPF_SkiaFontMgr* CFPF_SkiaDeviceModule::GetFontMgr() { if (!m_pFontMgr) { - m_pFontMgr = new CFPF_SkiaFontMgr; - if (!m_pFontMgr->InitFTLibrary()) { - delete m_pFontMgr; + auto pNewMgr = pdfium::MakeUnique(); + if (!pNewMgr->InitFTLibrary()) return nullptr; - } + m_pFontMgr = std::move(pNewMgr); } - return m_pFontMgr; + return m_pFontMgr.get(); } diff --git a/core/fxge/android/cfpf_skiadevicemodule.h b/core/fxge/android/cfpf_skiadevicemodule.h index 3261820039..558b08413d 100644 --- a/core/fxge/android/cfpf_skiadevicemodule.h +++ b/core/fxge/android/cfpf_skiadevicemodule.h @@ -7,18 +7,20 @@ #ifndef CORE_FXGE_ANDROID_CFPF_SKIADEVICEMODULE_H_ #define CORE_FXGE_ANDROID_CFPF_SKIADEVICEMODULE_H_ +#include + class CFPF_SkiaFontMgr; class CFPF_SkiaDeviceModule { public: - CFPF_SkiaDeviceModule() : m_pFontMgr(nullptr) {} + CFPF_SkiaDeviceModule(); ~CFPF_SkiaDeviceModule(); void Destroy(); CFPF_SkiaFontMgr* GetFontMgr(); protected: - CFPF_SkiaFontMgr* m_pFontMgr; + std::unique_ptr m_pFontMgr; }; CFPF_SkiaDeviceModule* CFPF_GetSkiaDeviceModule(); -- cgit v1.2.3