Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(415)

Side by Side Diff: xfa/fxfa/app/xfa_ffapp.cpp

Issue 2227883002: Use smart pointers for class owned pointers in xfa/fxfa (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: address comments Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fwl/theme/cfwl_widgettp.cpp ('k') | xfa/fxfa/app/xfa_ffdocview.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/fxfa/include/xfa_ffapp.h" 7 #include "xfa/fxfa/include/xfa_ffapp.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <utility> 10 #include <utility>
(...skipping 19 matching lines...) Expand all
30 30
31 FX_FILESIZE CXFA_FileRead::GetSize() { 31 FX_FILESIZE CXFA_FileRead::GetSize() {
32 uint32_t dwSize = 0; 32 uint32_t dwSize = 0;
33 int32_t iCount = m_Data.GetSize(); 33 int32_t iCount = m_Data.GetSize();
34 for (int32_t i = 0; i < iCount; i++) { 34 for (int32_t i = 0; i < iCount; i++) {
35 CPDF_StreamAcc& acc = m_Data[i]; 35 CPDF_StreamAcc& acc = m_Data[i];
36 dwSize += acc.GetSize(); 36 dwSize += acc.GetSize();
37 } 37 }
38 return dwSize; 38 return dwSize;
39 } 39 }
40
40 FX_BOOL CXFA_FileRead::ReadBlock(void* buffer, 41 FX_BOOL CXFA_FileRead::ReadBlock(void* buffer,
41 FX_FILESIZE offset, 42 FX_FILESIZE offset,
42 size_t size) { 43 size_t size) {
43 int32_t iCount = m_Data.GetSize(); 44 int32_t iCount = m_Data.GetSize();
44 int32_t index = 0; 45 int32_t index = 0;
45 while (index < iCount) { 46 while (index < iCount) {
46 CPDF_StreamAcc& acc = m_Data[index]; 47 CPDF_StreamAcc& acc = m_Data[index];
47 FX_FILESIZE dwSize = acc.GetSize(); 48 FX_FILESIZE dwSize = acc.GetSize();
48 if (offset < dwSize) { 49 if (offset < dwSize) {
49 break; 50 break;
(...skipping 15 matching lines...) Expand all
65 index++; 66 index++;
66 } 67 }
67 return FALSE; 68 return FALSE;
68 } 69 }
69 70
70 void CXFA_FileRead::Release() { 71 void CXFA_FileRead::Release() {
71 delete this; 72 delete this;
72 } 73 }
73 74
74 CXFA_FFApp::CXFA_FFApp(IXFA_AppProvider* pProvider) 75 CXFA_FFApp::CXFA_FFApp(IXFA_AppProvider* pProvider)
75 : m_pDocHandler(nullptr), 76 : m_pProvider(pProvider),
76 m_pFWLTheme(nullptr),
77 m_pProvider(pProvider),
78 m_pFontMgr(nullptr),
79 #if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_
80 m_pFontSource(nullptr),
81 #endif
82 m_pAdapterWidgetMgr(nullptr),
83 m_pWidgetMgrDelegate(nullptr), 77 m_pWidgetMgrDelegate(nullptr),
84 m_pFDEFontMgr(nullptr) { 78 m_pFWLApp(IFWL_App::Create(this)) {
85 m_pFWLApp = IFWL_App::Create(this); 79 FWL_SetApp(m_pFWLApp.get());
86 FWL_SetApp(m_pFWLApp);
87 m_pFWLApp->Initialize(); 80 m_pFWLApp->Initialize();
88 CXFA_TimeZoneProvider::Create(); 81 CXFA_TimeZoneProvider::Create();
89 } 82 }
90 83
91 CXFA_FFApp::~CXFA_FFApp() { 84 CXFA_FFApp::~CXFA_FFApp() {
92 delete m_pDocHandler;
93 if (m_pFWLApp) { 85 if (m_pFWLApp) {
94 m_pFWLApp->Finalize(); 86 m_pFWLApp->Finalize();
95 m_pFWLApp->Release(); 87 m_pFWLApp->Release();
96 delete m_pFWLApp;
97 } 88 }
98 delete m_pFWLTheme;
99 delete m_pAdapterWidgetMgr;
100 89
101 CXFA_TimeZoneProvider::Destroy(); 90 CXFA_TimeZoneProvider::Destroy();
102 delete m_pFontMgr;
103 #if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_
104 if (m_pFontSource)
105 m_pFontSource->Release();
106 #endif
107 if (m_pFDEFontMgr)
108 m_pFDEFontMgr->Release();
109 } 91 }
110 92
111 CXFA_FFDocHandler* CXFA_FFApp::GetDocHandler() { 93 CXFA_FFDocHandler* CXFA_FFApp::GetDocHandler() {
112 if (!m_pDocHandler) 94 if (!m_pDocHandler)
113 m_pDocHandler = new CXFA_FFDocHandler; 95 m_pDocHandler.reset(new CXFA_FFDocHandler);
114 return m_pDocHandler; 96 return m_pDocHandler.get();
115 } 97 }
98
116 CXFA_FFDoc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, 99 CXFA_FFDoc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider,
117 IFX_FileRead* pStream, 100 IFX_FileRead* pStream,
118 FX_BOOL bTakeOverFile) { 101 FX_BOOL bTakeOverFile) {
119 std::unique_ptr<CXFA_FFDoc> pDoc(new CXFA_FFDoc(this, pProvider)); 102 std::unique_ptr<CXFA_FFDoc> pDoc(new CXFA_FFDoc(this, pProvider));
120 FX_BOOL bSuccess = pDoc->OpenDoc(pStream, bTakeOverFile); 103 FX_BOOL bSuccess = pDoc->OpenDoc(pStream, bTakeOverFile);
121 return bSuccess ? pDoc.release() : nullptr; 104 return bSuccess ? pDoc.release() : nullptr;
122 } 105 }
123 106
124 CXFA_FFDoc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, 107 CXFA_FFDoc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider,
125 CPDF_Document* pPDFDoc) { 108 CPDF_Document* pPDFDoc) {
126 if (!pPDFDoc) 109 if (!pPDFDoc)
127 return nullptr; 110 return nullptr;
128 111
129 std::unique_ptr<CXFA_FFDoc> pDoc(new CXFA_FFDoc(this, pProvider)); 112 std::unique_ptr<CXFA_FFDoc> pDoc(new CXFA_FFDoc(this, pProvider));
130 FX_BOOL bSuccess = pDoc->OpenDoc(pPDFDoc); 113 FX_BOOL bSuccess = pDoc->OpenDoc(pPDFDoc);
131 return bSuccess ? pDoc.release() : nullptr; 114 return bSuccess ? pDoc.release() : nullptr;
132 } 115 }
133 116
134 void CXFA_FFApp::SetDefaultFontMgr(std::unique_ptr<CXFA_DefFontMgr> pFontMgr) { 117 void CXFA_FFApp::SetDefaultFontMgr(std::unique_ptr<CXFA_DefFontMgr> pFontMgr) {
135 if (!m_pFontMgr) 118 if (!m_pFontMgr)
136 m_pFontMgr = new CXFA_FontMgr(); 119 m_pFontMgr.reset(new CXFA_FontMgr());
137 m_pFontMgr->SetDefFontMgr(std::move(pFontMgr)); 120 m_pFontMgr->SetDefFontMgr(std::move(pFontMgr));
138 } 121 }
139 122
140 CXFA_FontMgr* CXFA_FFApp::GetXFAFontMgr() { 123 CXFA_FontMgr* CXFA_FFApp::GetXFAFontMgr() const {
141 return m_pFontMgr; 124 return m_pFontMgr.get();
142 } 125 }
143 126
144 IFGAS_FontMgr* CXFA_FFApp::GetFDEFontMgr() { 127 IFGAS_FontMgr* CXFA_FFApp::GetFDEFontMgr() {
145 if (!m_pFDEFontMgr) { 128 if (!m_pFDEFontMgr) {
146 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ 129 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
147 m_pFDEFontMgr = IFGAS_FontMgr::Create(FX_GetDefFontEnumerator()); 130 m_pFDEFontMgr = IFGAS_FontMgr::Create(FX_GetDefFontEnumerator());
148 #else 131 #else
149 m_pFontSource = new CFX_FontSourceEnum_File; 132 m_pFontSource.reset(new CFX_FontSourceEnum_File);
150 m_pFDEFontMgr = IFGAS_FontMgr::Create(m_pFontSource); 133 m_pFDEFontMgr = IFGAS_FontMgr::Create(m_pFontSource.get());
151 #endif 134 #endif
152 } 135 }
153 return m_pFDEFontMgr; 136 return m_pFDEFontMgr.get();
154 } 137 }
138
155 CXFA_FWLTheme* CXFA_FFApp::GetFWLTheme() { 139 CXFA_FWLTheme* CXFA_FFApp::GetFWLTheme() {
156 if (!m_pFWLTheme) { 140 if (!m_pFWLTheme)
157 m_pFWLTheme = new CXFA_FWLTheme(this); 141 m_pFWLTheme.reset(new CXFA_FWLTheme(this));
158 } 142 return m_pFWLTheme.get();
159 return m_pFWLTheme;
160 } 143 }
144
161 CXFA_FWLAdapterWidgetMgr* CXFA_FFApp::GetWidgetMgr( 145 CXFA_FWLAdapterWidgetMgr* CXFA_FFApp::GetWidgetMgr(
162 CFWL_WidgetMgrDelegate* pDelegate) { 146 CFWL_WidgetMgrDelegate* pDelegate) {
163 if (!m_pAdapterWidgetMgr) { 147 if (!m_pAdapterWidgetMgr) {
164 m_pAdapterWidgetMgr = new CXFA_FWLAdapterWidgetMgr; 148 m_pAdapterWidgetMgr.reset(new CXFA_FWLAdapterWidgetMgr);
165 pDelegate->OnSetCapability(FWL_WGTMGR_DisableThread | 149 pDelegate->OnSetCapability(FWL_WGTMGR_DisableThread |
166 FWL_WGTMGR_DisableForm); 150 FWL_WGTMGR_DisableForm);
167 m_pWidgetMgrDelegate = pDelegate; 151 m_pWidgetMgrDelegate = pDelegate;
168 } 152 }
169 return m_pAdapterWidgetMgr; 153 return m_pAdapterWidgetMgr.get();
170 } 154 }
171 IFWL_AdapterTimerMgr* CXFA_FFApp::GetTimerMgr() { 155
156 IFWL_AdapterTimerMgr* CXFA_FFApp::GetTimerMgr() const {
172 return m_pProvider->GetTimerMgr(); 157 return m_pProvider->GetTimerMgr();
173 } 158 }
OLDNEW
« no previous file with comments | « xfa/fwl/theme/cfwl_widgettp.cpp ('k') | xfa/fxfa/app/xfa_ffdocview.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698