Convert a bunch of raw pointers in fsdk_mgr to unique_ptrs.
authorOliver Chang <ochang@chromium.org>
Fri, 30 Oct 2015 22:28:47 +0000 (15:28 -0700)
committerOliver Chang <ochang@chromium.org>
Fri, 30 Oct 2015 22:28:47 +0000 (15:28 -0700)
R=tsepez@chromium.org, thestig@chromium.org

Review URL: https://codereview.chromium.org/1425233002 .

fpdfsdk/include/fsdk_mgr.h
fpdfsdk/src/fsdk_mgr.cpp

index 2cc5282..ae4e163 100644 (file)
@@ -205,7 +205,7 @@ class CPDFDoc_Environment final {
   CPDFSDK_Document* GetSDKDocument() const { return m_pSDKDoc; }
   CPDF_Document* GetPDFDocument() const { return m_pPDFDoc; }
   CFX_ByteString GetAppName() const { return ""; }
-  IFX_SystemHandler* GetSysHandler() const { return m_pSysHandler; }
+  IFX_SystemHandler* GetSysHandler() const { return m_pSysHandler.get(); }
   FPDF_FORMFILLINFO* GetFormFillInfo() const { return m_pInfo; }
 
   CFFL_IFormFiller* GetIFormFiller();             // Creates if not present.
@@ -214,14 +214,14 @@ class CPDFDoc_Environment final {
   CPDFSDK_ActionHandler* GetActionHander();       // Creates if not present.
 
  private:
-  CPDFSDK_AnnotHandlerMgr* m_pAnnotHandlerMgr;
-  CPDFSDK_ActionHandler* m_pActionHandler;
+  nonstd::unique_ptr<CPDFSDK_AnnotHandlerMgr> m_pAnnotHandlerMgr;
+  nonstd::unique_ptr<CPDFSDK_ActionHandler> m_pActionHandler;
   nonstd::unique_ptr<IJS_Runtime> m_pJSRuntime;
   FPDF_FORMFILLINFO* const m_pInfo;
   CPDFSDK_Document* m_pSDKDoc;
   CPDF_Document* const m_pPDFDoc;
-  CFFL_IFormFiller* m_pIFormFiller;
-  IFX_SystemHandler* m_pSysHandler;
+  nonstd::unique_ptr<CFFL_IFormFiller> m_pIFormFiller;
+  nonstd::unique_ptr<IFX_SystemHandler> m_pSysHandler;
 };
 
 class CPDFSDK_Document {
@@ -278,10 +278,10 @@ class CPDFSDK_Document {
  private:
   std::map<CPDF_Page*, CPDFSDK_PageView*> m_pageMap;
   CPDF_Document* m_pDoc;
-  CPDFSDK_InterForm* m_pInterForm;
+  nonstd::unique_ptr<CPDFSDK_InterForm> m_pInterForm;
   CPDFSDK_Annot* m_pFocusAnnot;
   CPDFDoc_Environment* m_pEnv;
-  CPDF_OCContext* m_pOccontent;
+  nonstd::unique_ptr<CPDF_OCContext> m_pOccontent;
   FX_BOOL m_bChangeMask;
   FX_BOOL m_bBeingDestroyed;
 };
index 60fd0ef..841bd19 100644 (file)
@@ -210,27 +210,13 @@ FX_SYSTEMTIME CFX_SystemHandler::GetLocalTime() {
 
 CPDFDoc_Environment::CPDFDoc_Environment(CPDF_Document* pDoc,
                                          FPDF_FORMFILLINFO* pFFinfo)
-    : m_pAnnotHandlerMgr(NULL),
-      m_pActionHandler(NULL),
-      m_pInfo(pFFinfo),
+    : m_pInfo(pFFinfo),
       m_pSDKDoc(NULL),
       m_pPDFDoc(pDoc),
-      m_pIFormFiller(NULL) {
-  m_pSysHandler = new CFX_SystemHandler(this);
+      m_pSysHandler(new CFX_SystemHandler(this)) {
 }
 
 CPDFDoc_Environment::~CPDFDoc_Environment() {
-  delete m_pIFormFiller;
-  m_pIFormFiller = NULL;
-
-  delete m_pSysHandler;
-  m_pSysHandler = NULL;
-
-  delete m_pAnnotHandlerMgr;
-  m_pAnnotHandlerMgr = NULL;
-
-  delete m_pActionHandler;
-  m_pActionHandler = NULL;
 }
 
 int CPDFDoc_Environment::JS_appAlert(const FX_WCHAR* Msg,
@@ -385,31 +371,25 @@ IJS_Runtime* CPDFDoc_Environment::GetJSRuntime() {
 
 CPDFSDK_AnnotHandlerMgr* CPDFDoc_Environment::GetAnnotHandlerMgr() {
   if (!m_pAnnotHandlerMgr)
-    m_pAnnotHandlerMgr = new CPDFSDK_AnnotHandlerMgr(this);
-  return m_pAnnotHandlerMgr;
+    m_pAnnotHandlerMgr.reset(new CPDFSDK_AnnotHandlerMgr(this));
+  return m_pAnnotHandlerMgr.get();
 }
 
 CPDFSDK_ActionHandler* CPDFDoc_Environment::GetActionHander() {
   if (!m_pActionHandler)
-    m_pActionHandler = new CPDFSDK_ActionHandler();
-  return m_pActionHandler;
+    m_pActionHandler.reset(new CPDFSDK_ActionHandler());
+  return m_pActionHandler.get();
 }
 
 CFFL_IFormFiller* CPDFDoc_Environment::GetIFormFiller() {
   if (!m_pIFormFiller)
-    m_pIFormFiller = new CFFL_IFormFiller(this);
-  return m_pIFormFiller;
+    m_pIFormFiller.reset(new CFFL_IFormFiller(this));
+  return m_pIFormFiller.get();
 }
 
 CPDFSDK_Document::CPDFSDK_Document(CPDF_Document* pDoc,
                                    CPDFDoc_Environment* pEnv)
-    : m_pDoc(pDoc),
-      m_pInterForm(nullptr),
-      m_pFocusAnnot(nullptr),
-      m_pEnv(pEnv),
-      m_pOccontent(nullptr),
-      m_bChangeMask(FALSE),
-      m_bBeingDestroyed(FALSE) {
+    : m_pDoc(pDoc), m_pFocusAnnot(nullptr), m_pEnv(pEnv), m_bChangeMask(FALSE) {
 }
 
 CPDFSDK_Document::~CPDFSDK_Document() {
@@ -421,12 +401,6 @@ CPDFSDK_Document::~CPDFSDK_Document() {
   for (auto& it : m_pageMap)
     delete it.second;
   m_pageMap.clear();
-
-  delete m_pInterForm;
-  m_pInterForm = nullptr;
-
-  delete m_pOccontent;
-  m_pOccontent = nullptr;
 }
 
 CPDFSDK_PageView* CPDFSDK_Document::GetPageView(CPDF_Page* pPDFPage,
@@ -503,8 +477,8 @@ FX_BOOL CPDFSDK_Document::ProcOpenAction() {
 
 CPDF_OCContext* CPDFSDK_Document::GetOCContext() {
   if (!m_pOccontent)
-    m_pOccontent = new CPDF_OCContext(m_pDoc);
-  return m_pOccontent;
+    m_pOccontent.reset(new CPDF_OCContext(m_pDoc));
+  return m_pOccontent.get();
 }
 
 void CPDFSDK_Document::ReMovePageView(CPDF_Page* pPDFPage) {
@@ -530,8 +504,8 @@ CPDF_Page* CPDFSDK_Document::GetPage(int nIndex) {
 
 CPDFSDK_InterForm* CPDFSDK_Document::GetInterForm() {
   if (!m_pInterForm)
-    m_pInterForm = new CPDFSDK_InterForm(this);
-  return m_pInterForm;
+    m_pInterForm.reset(new CPDFSDK_InterForm(this));
+  return m_pInterForm.get();
 }
 
 void CPDFSDK_Document::UpdateAllViews(CPDFSDK_PageView* pSender,