OLD | NEW |
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 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 delete m_pFontMgr; | 102 delete m_pFontMgr; |
103 #if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ | 103 #if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_ |
104 if (m_pFontSource) | 104 if (m_pFontSource) |
105 m_pFontSource->Release(); | 105 m_pFontSource->Release(); |
106 #endif | 106 #endif |
107 if (m_pFDEFontMgr) | 107 if (m_pFDEFontMgr) |
108 m_pFDEFontMgr->Release(); | 108 m_pFDEFontMgr->Release(); |
109 } | 109 } |
110 | 110 |
111 CXFA_FFDocHandler* CXFA_FFApp::GetDocHandler() { | 111 CXFA_FFDocHandler* CXFA_FFApp::GetDocHandler() { |
112 if (!m_pDocHandler) { | 112 if (!m_pDocHandler) |
113 m_pDocHandler = new CXFA_FFDocHandler; | 113 m_pDocHandler = new CXFA_FFDocHandler; |
114 } | |
115 return m_pDocHandler; | 114 return m_pDocHandler; |
116 } | 115 } |
117 CXFA_FFDoc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, | 116 CXFA_FFDoc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, |
118 IFX_FileRead* pStream, | 117 IFX_FileRead* pStream, |
119 FX_BOOL bTakeOverFile) { | 118 FX_BOOL bTakeOverFile) { |
120 CXFA_FFDoc* pDoc = new CXFA_FFDoc(this, pProvider); | 119 std::unique_ptr<CXFA_FFDoc> pDoc(new CXFA_FFDoc(this, pProvider)); |
121 FX_BOOL bSuccess = pDoc->OpenDoc(pStream, bTakeOverFile); | 120 FX_BOOL bSuccess = pDoc->OpenDoc(pStream, bTakeOverFile); |
122 if (!bSuccess) { | 121 return bSuccess ? pDoc.release() : nullptr; |
123 delete pDoc; | |
124 pDoc = NULL; | |
125 } | |
126 return pDoc; | |
127 } | 122 } |
| 123 |
128 CXFA_FFDoc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, | 124 CXFA_FFDoc* CXFA_FFApp::CreateDoc(IXFA_DocProvider* pProvider, |
129 CPDF_Document* pPDFDoc) { | 125 CPDF_Document* pPDFDoc) { |
130 if (pPDFDoc == NULL) { | 126 if (!pPDFDoc) |
131 return NULL; | 127 return nullptr; |
132 } | 128 |
133 CXFA_FFDoc* pDoc = new CXFA_FFDoc(this, pProvider); | 129 std::unique_ptr<CXFA_FFDoc> pDoc(new CXFA_FFDoc(this, pProvider)); |
134 FX_BOOL bSuccess = pDoc->OpenDoc(pPDFDoc); | 130 FX_BOOL bSuccess = pDoc->OpenDoc(pPDFDoc); |
135 if (!bSuccess) { | 131 return bSuccess ? pDoc.release() : nullptr; |
136 delete pDoc; | |
137 pDoc = NULL; | |
138 } | |
139 return pDoc; | |
140 } | 132 } |
141 | 133 |
142 void CXFA_FFApp::SetDefaultFontMgr(std::unique_ptr<CXFA_DefFontMgr> pFontMgr) { | 134 void CXFA_FFApp::SetDefaultFontMgr(std::unique_ptr<CXFA_DefFontMgr> pFontMgr) { |
143 if (!m_pFontMgr) | 135 if (!m_pFontMgr) |
144 m_pFontMgr = new CXFA_FontMgr(); | 136 m_pFontMgr = new CXFA_FontMgr(); |
145 m_pFontMgr->SetDefFontMgr(std::move(pFontMgr)); | 137 m_pFontMgr->SetDefFontMgr(std::move(pFontMgr)); |
146 } | 138 } |
147 | 139 |
148 CXFA_FontMgr* CXFA_FFApp::GetXFAFontMgr() { | 140 CXFA_FontMgr* CXFA_FFApp::GetXFAFontMgr() { |
149 return m_pFontMgr; | 141 return m_pFontMgr; |
(...skipping 22 matching lines...) Expand all Loading... |
172 m_pAdapterWidgetMgr = new CXFA_FWLAdapterWidgetMgr; | 164 m_pAdapterWidgetMgr = new CXFA_FWLAdapterWidgetMgr; |
173 pDelegate->OnSetCapability(FWL_WGTMGR_DisableThread | | 165 pDelegate->OnSetCapability(FWL_WGTMGR_DisableThread | |
174 FWL_WGTMGR_DisableForm); | 166 FWL_WGTMGR_DisableForm); |
175 m_pWidgetMgrDelegate = pDelegate; | 167 m_pWidgetMgrDelegate = pDelegate; |
176 } | 168 } |
177 return m_pAdapterWidgetMgr; | 169 return m_pAdapterWidgetMgr; |
178 } | 170 } |
179 IFWL_AdapterTimerMgr* CXFA_FFApp::GetTimerMgr() { | 171 IFWL_AdapterTimerMgr* CXFA_FFApp::GetTimerMgr() { |
180 return m_pProvider->GetTimerMgr(); | 172 return m_pProvider->GetTimerMgr(); |
181 } | 173 } |
OLD | NEW |