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

Side by Side Diff: fpdfsdk/fpdfsave.cpp

Issue 2031653003: Get rid of NULLs in fpdfsdk/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium@nullptr_core
Patch Set: rebase Created 4 years, 6 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 | « fpdfsdk/fpdfformfill.cpp ('k') | fpdfsdk/fpdfview.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 "public/fpdf_save.h" 7 #include "public/fpdf_save.h"
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 FX_BOOL WriteBlock(const void* pData, size_t size) override; 42 FX_BOOL WriteBlock(const void* pData, size_t size) override;
43 void Release() override; 43 void Release() override;
44 44
45 protected: 45 protected:
46 ~CFX_IFileWrite() override {} 46 ~CFX_IFileWrite() override {}
47 47
48 FPDF_FILEWRITE* m_pFileWriteStruct; 48 FPDF_FILEWRITE* m_pFileWriteStruct;
49 }; 49 };
50 50
51 CFX_IFileWrite::CFX_IFileWrite() { 51 CFX_IFileWrite::CFX_IFileWrite() {
52 m_pFileWriteStruct = NULL; 52 m_pFileWriteStruct = nullptr;
53 } 53 }
54 54
55 FX_BOOL CFX_IFileWrite::Init(FPDF_FILEWRITE* pFileWriteStruct) { 55 FX_BOOL CFX_IFileWrite::Init(FPDF_FILEWRITE* pFileWriteStruct) {
56 if (!pFileWriteStruct) 56 if (!pFileWriteStruct)
57 return FALSE; 57 return FALSE;
58 58
59 m_pFileWriteStruct = pFileWriteStruct; 59 m_pFileWriteStruct = pFileWriteStruct;
60 return TRUE; 60 return TRUE;
61 } 61 }
62 62
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 // template 133 // template
134 if (iTemplate > -1) { 134 if (iTemplate > -1) {
135 CPDF_Stream* pTemplateStream = pArray->GetStreamAt(iTemplate); 135 CPDF_Stream* pTemplateStream = pArray->GetStreamAt(iTemplate);
136 CPDF_StreamAcc streamAcc; 136 CPDF_StreamAcc streamAcc;
137 streamAcc.LoadAllData(pTemplateStream); 137 streamAcc.LoadAllData(pTemplateStream);
138 uint8_t* pData = (uint8_t*)streamAcc.GetData(); 138 uint8_t* pData = (uint8_t*)streamAcc.GetData();
139 uint32_t dwSize2 = streamAcc.GetSize(); 139 uint32_t dwSize2 = streamAcc.GetSize();
140 ScopedFileStream pTemplate(FX_CreateMemoryStream(pData, dwSize2)); 140 ScopedFileStream pTemplate(FX_CreateMemoryStream(pData, dwSize2));
141 pContext->UpdateChecksum(pTemplate.get()); 141 pContext->UpdateChecksum(pTemplate.get());
142 } 142 }
143 CPDF_Stream* pFormStream = NULL; 143 CPDF_Stream* pFormStream = nullptr;
144 CPDF_Stream* pDataSetsStream = NULL; 144 CPDF_Stream* pDataSetsStream = nullptr;
145 if (iFormIndex != -1) { 145 if (iFormIndex != -1) {
146 // Get form CPDF_Stream 146 // Get form CPDF_Stream
147 CPDF_Object* pFormPDFObj = pArray->GetObjectAt(iFormIndex); 147 CPDF_Object* pFormPDFObj = pArray->GetObjectAt(iFormIndex);
148 if (pFormPDFObj->IsReference()) { 148 if (pFormPDFObj->IsReference()) {
149 CPDF_Object* pFormDirectObj = pFormPDFObj->GetDirect(); 149 CPDF_Object* pFormDirectObj = pFormPDFObj->GetDirect();
150 if (pFormDirectObj && pFormDirectObj->IsStream()) { 150 if (pFormDirectObj && pFormDirectObj->IsStream()) {
151 pFormStream = (CPDF_Stream*)pFormDirectObj; 151 pFormStream = (CPDF_Stream*)pFormDirectObj;
152 } 152 }
153 } else if (pFormPDFObj->IsStream()) { 153 } else if (pFormPDFObj->IsStream()) {
154 pFormStream = (CPDF_Stream*)pFormPDFObj; 154 pFormStream = (CPDF_Stream*)pFormPDFObj;
(...skipping 20 matching lines...) Expand all
175 pDsfileWrite.get(), nullptr) && 175 pDsfileWrite.get(), nullptr) &&
176 pDsfileWrite->GetSize() > 0) { 176 pDsfileWrite->GetSize() > 0) {
177 // Datasets 177 // Datasets
178 pContext->UpdateChecksum(pDsfileWrite.get()); 178 pContext->UpdateChecksum(pDsfileWrite.get());
179 pContext->FinishChecksum(); 179 pContext->FinishChecksum();
180 CPDF_Dictionary* pDataDict = new CPDF_Dictionary; 180 CPDF_Dictionary* pDataDict = new CPDF_Dictionary;
181 if (iDataSetsIndex != -1) { 181 if (iDataSetsIndex != -1) {
182 if (pDataSetsStream) 182 if (pDataSetsStream)
183 pDataSetsStream->InitStreamFromFile(pDsfileWrite.get(), pDataDict); 183 pDataSetsStream->InitStreamFromFile(pDsfileWrite.get(), pDataDict);
184 } else { 184 } else {
185 CPDF_Stream* pData = new CPDF_Stream(NULL, 0, NULL); 185 CPDF_Stream* pData = new CPDF_Stream(nullptr, 0, nullptr);
186 pData->InitStreamFromFile(pDsfileWrite.get(), pDataDict); 186 pData->InitStreamFromFile(pDsfileWrite.get(), pDataDict);
187 pPDFDocument->AddIndirectObject(pData); 187 pPDFDocument->AddIndirectObject(pData);
188 iLast = pArray->GetCount() - 2; 188 iLast = pArray->GetCount() - 2;
189 pArray->InsertAt(iLast, new CPDF_String("datasets", FALSE)); 189 pArray->InsertAt(iLast, new CPDF_String("datasets", FALSE));
190 pArray->InsertAt(iLast + 1, pData, pPDFDocument); 190 pArray->InsertAt(iLast + 1, pData, pPDFDocument);
191 } 191 }
192 fileList->push_back(std::move(pDsfileWrite)); 192 fileList->push_back(std::move(pDsfileWrite));
193 } 193 }
194 } 194 }
195 // L"form" 195 // L"form"
196 { 196 {
197 ScopedFileStream pfileWrite(FX_CreateMemoryStream()); 197 ScopedFileStream pfileWrite(FX_CreateMemoryStream());
198 if (pXFADocView->GetDoc()->SavePackage(XFA_HASHCODE_Form, pfileWrite.get(), 198 if (pXFADocView->GetDoc()->SavePackage(XFA_HASHCODE_Form, pfileWrite.get(),
199 pContext.get()) && 199 pContext.get()) &&
200 pfileWrite->GetSize() > 0) { 200 pfileWrite->GetSize() > 0) {
201 CPDF_Dictionary* pDataDict = new CPDF_Dictionary; 201 CPDF_Dictionary* pDataDict = new CPDF_Dictionary;
202 if (iFormIndex != -1) { 202 if (iFormIndex != -1) {
203 if (pFormStream) 203 if (pFormStream)
204 pFormStream->InitStreamFromFile(pfileWrite.get(), pDataDict); 204 pFormStream->InitStreamFromFile(pfileWrite.get(), pDataDict);
205 } else { 205 } else {
206 CPDF_Stream* pData = new CPDF_Stream(NULL, 0, NULL); 206 CPDF_Stream* pData = new CPDF_Stream(nullptr, 0, nullptr);
207 pData->InitStreamFromFile(pfileWrite.get(), pDataDict); 207 pData->InitStreamFromFile(pfileWrite.get(), pDataDict);
208 pPDFDocument->AddIndirectObject(pData); 208 pPDFDocument->AddIndirectObject(pData);
209 iLast = pArray->GetCount() - 2; 209 iLast = pArray->GetCount() - 2;
210 pArray->InsertAt(iLast, new CPDF_String("form", FALSE)); 210 pArray->InsertAt(iLast, new CPDF_String("form", FALSE));
211 pArray->InsertAt(iLast + 1, pData, pPDFDocument); 211 pArray->InsertAt(iLast + 1, pData, pPDFDocument);
212 } 212 }
213 fileList->push_back(std::move(pfileWrite)); 213 fileList->push_back(std::move(pfileWrite));
214 } 214 }
215 } 215 }
216 return true; 216 return true;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 flags = 0; 283 flags = 0;
284 284
285 CPDF_Creator FileMaker(pPDFDoc); 285 CPDF_Creator FileMaker(pPDFDoc);
286 if (bSetVersion) 286 if (bSetVersion)
287 FileMaker.SetFileVersion(fileVerion); 287 FileMaker.SetFileVersion(fileVerion);
288 if (flags == FPDF_REMOVE_SECURITY) { 288 if (flags == FPDF_REMOVE_SECURITY) {
289 flags = 0; 289 flags = 0;
290 FileMaker.RemoveSecurity(); 290 FileMaker.RemoveSecurity();
291 } 291 }
292 292
293 CFX_IFileWrite* pStreamWrite = NULL; 293 CFX_IFileWrite* pStreamWrite = new CFX_IFileWrite;
294 pStreamWrite = new CFX_IFileWrite;
295 pStreamWrite->Init(pFileWrite); 294 pStreamWrite->Init(pFileWrite);
296 bool bRet = FileMaker.Create(pStreamWrite, flags); 295 bool bRet = FileMaker.Create(pStreamWrite, flags);
297 #ifdef PDF_ENABLE_XFA 296 #ifdef PDF_ENABLE_XFA
298 SendPostSaveToXFADoc(pDoc); 297 SendPostSaveToXFADoc(pDoc);
299 #endif // PDF_ENABLE_XFA 298 #endif // PDF_ENABLE_XFA
300 pStreamWrite->Release(); 299 pStreamWrite->Release();
301 return bRet; 300 return bRet;
302 } 301 }
303 302
304 } // namespace 303 } // namespace
305 304
306 DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy(FPDF_DOCUMENT document, 305 DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy(FPDF_DOCUMENT document,
307 FPDF_FILEWRITE* pFileWrite, 306 FPDF_FILEWRITE* pFileWrite,
308 FPDF_DWORD flags) { 307 FPDF_DWORD flags) {
309 return FPDF_Doc_Save(document, pFileWrite, flags, FALSE, 0); 308 return FPDF_Doc_Save(document, pFileWrite, flags, FALSE, 0);
310 } 309 }
311 310
312 DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveWithVersion(FPDF_DOCUMENT document, 311 DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveWithVersion(FPDF_DOCUMENT document,
313 FPDF_FILEWRITE* pFileWrite, 312 FPDF_FILEWRITE* pFileWrite,
314 FPDF_DWORD flags, 313 FPDF_DWORD flags,
315 int fileVersion) { 314 int fileVersion) {
316 return FPDF_Doc_Save(document, pFileWrite, flags, TRUE, fileVersion); 315 return FPDF_Doc_Save(document, pFileWrite, flags, TRUE, fileVersion);
317 } 316 }
OLDNEW
« no previous file with comments | « fpdfsdk/fpdfformfill.cpp ('k') | fpdfsdk/fpdfview.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698