Use unique_ptr in CFPF_SkiaDeviceModule
Change-Id: Ie50deca34dd3c122efb483ef210f96798abe9e4e
Reviewed-on: https://pdfium-review.googlesource.com/4498
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxge/android/cfpf_skiadevicemodule.cpp b/core/fxge/android/cfpf_skiadevicemodule.cpp
index 7bdf646..bb3f70a 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 <utility>
+
#include "core/fxge/android/cfpf_skiafontmgr.h"
+#include "third_party/base/ptr_util.h"
namespace {
@@ -20,9 +23,9 @@
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 @@
CFPF_SkiaFontMgr* CFPF_SkiaDeviceModule::GetFontMgr() {
if (!m_pFontMgr) {
- m_pFontMgr = new CFPF_SkiaFontMgr;
- if (!m_pFontMgr->InitFTLibrary()) {
- delete m_pFontMgr;
+ auto pNewMgr = pdfium::MakeUnique<CFPF_SkiaFontMgr>();
+ 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 3261820..558b084 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 <memory>
+
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<CFPF_SkiaFontMgr> m_pFontMgr;
};
CFPF_SkiaDeviceModule* CFPF_GetSkiaDeviceModule();