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

Side by Side Diff: core/src/fpdfdoc/doc_ap.cpp

Issue 1540693002: Get rid of a few CPDF_Object Create() methods and just use new instead. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: rebase Created 5 years 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 | « core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp ('k') | core/src/fpdfdoc/doc_basic.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 "core/include/fpdfdoc/fpdf_ap.h" 7 #include "core/include/fpdfdoc/fpdf_ap.h"
8 #include "core/include/fpdfdoc/fpdf_doc.h" 8 #include "core/include/fpdfdoc/fpdf_doc.h"
9 #include "core/include/fpdfdoc/fpdf_vt.h" 9 #include "core/include/fpdfdoc/fpdf_vt.h"
10 #include "doc_utils.h" 10 #include "doc_utils.h"
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 pDRFontDict = pDRDict->GetDict("Font"); 304 pDRFontDict = pDRDict->GetDict("Font");
305 if (pDRFontDict) { 305 if (pDRFontDict) {
306 pFontDict = pDRFontDict->GetDict(sFontName.Mid(1)); 306 pFontDict = pDRFontDict->GetDict(sFontName.Mid(1));
307 } 307 }
308 } 308 }
309 } 309 }
310 if (!pDRFontDict) { 310 if (!pDRFontDict) {
311 return FALSE; 311 return FALSE;
312 } 312 }
313 if (!pFontDict) { 313 if (!pFontDict) {
314 pFontDict = CPDF_Dictionary::Create(); 314 pFontDict = new CPDF_Dictionary;
315 if (!pFontDict) {
316 return FALSE;
317 }
318 pFontDict->SetAtName("Type", "Font"); 315 pFontDict->SetAtName("Type", "Font");
319 pFontDict->SetAtName("Subtype", "Type1"); 316 pFontDict->SetAtName("Subtype", "Type1");
320 pFontDict->SetAtName("BaseFont", "Helvetica"); 317 pFontDict->SetAtName("BaseFont", "Helvetica");
321 pFontDict->SetAtName("Encoding", "WinAnsiEncoding"); 318 pFontDict->SetAtName("Encoding", "WinAnsiEncoding");
322 pDoc->AddIndirectObject(pFontDict); 319 pDoc->AddIndirectObject(pFontDict);
323 pDRFontDict->SetAtReference(sFontName.Mid(1), pDoc, pFontDict); 320 pDRFontDict->SetAtReference(sFontName.Mid(1), pDoc, pFontDict);
324 } 321 }
325 CPDF_Font* pDefFont = pDoc->LoadFont(pFontDict); 322 CPDF_Font* pDefFont = pDoc->LoadFont(pFontDict);
326 if (!pDefFont) { 323 if (!pDefFont) {
327 return FALSE; 324 return FALSE;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 dsBorder); 409 dsBorder);
413 if (sBorderStream.GetLength() > 0) { 410 if (sBorderStream.GetLength() > 0) {
414 sAppStream << "q\n" << sBorderStream << "Q\n"; 411 sAppStream << "q\n" << sBorderStream << "Q\n";
415 } 412 }
416 CPDF_Rect rcBody = 413 CPDF_Rect rcBody =
417 CPDF_Rect(rcBBox.left + fBorderWidth, rcBBox.bottom + fBorderWidth, 414 CPDF_Rect(rcBBox.left + fBorderWidth, rcBBox.bottom + fBorderWidth,
418 rcBBox.right - fBorderWidth, rcBBox.top - fBorderWidth); 415 rcBBox.right - fBorderWidth, rcBBox.top - fBorderWidth);
419 rcBody.Normalize(); 416 rcBody.Normalize();
420 CPDF_Dictionary* pAPDict = pAnnotDict->GetDict("AP"); 417 CPDF_Dictionary* pAPDict = pAnnotDict->GetDict("AP");
421 if (!pAPDict) { 418 if (!pAPDict) {
422 pAPDict = CPDF_Dictionary::Create(); 419 pAPDict = new CPDF_Dictionary;
423 pAnnotDict->SetAt("AP", pAPDict); 420 pAnnotDict->SetAt("AP", pAPDict);
424 } 421 }
425 CPDF_Stream* pNormalStream = pAPDict->GetStream("N"); 422 CPDF_Stream* pNormalStream = pAPDict->GetStream("N");
426 if (!pNormalStream) { 423 if (!pNormalStream) {
427 pNormalStream = new CPDF_Stream(nullptr, 0, nullptr); 424 pNormalStream = new CPDF_Stream(nullptr, 0, nullptr);
428 int32_t objnum = pDoc->AddIndirectObject(pNormalStream); 425 int32_t objnum = pDoc->AddIndirectObject(pNormalStream);
429 pAnnotDict->GetDict("AP")->SetAtReference("N", pDoc, objnum); 426 pAnnotDict->GetDict("AP")->SetAtReference("N", pDoc, objnum);
430 } 427 }
431 CPDF_Dictionary* pStreamDict = pNormalStream->GetDict(); 428 CPDF_Dictionary* pStreamDict = pNormalStream->GetDict();
432 if (pStreamDict) { 429 if (pStreamDict) {
433 pStreamDict->SetAtMatrix("Matrix", matrix); 430 pStreamDict->SetAtMatrix("Matrix", matrix);
434 pStreamDict->SetAtRect("BBox", rcBBox); 431 pStreamDict->SetAtRect("BBox", rcBBox);
435 CPDF_Dictionary* pStreamResList = pStreamDict->GetDict("Resources"); 432 CPDF_Dictionary* pStreamResList = pStreamDict->GetDict("Resources");
436 if (pStreamResList) { 433 if (pStreamResList) {
437 CPDF_Dictionary* pStreamResFontList = pStreamResList->GetDict("Font"); 434 CPDF_Dictionary* pStreamResFontList = pStreamResList->GetDict("Font");
438 if (!pStreamResFontList) { 435 if (!pStreamResFontList) {
439 pStreamResFontList = CPDF_Dictionary::Create(); 436 pStreamResFontList = new CPDF_Dictionary;
440 if (!pStreamResFontList) {
441 return FALSE;
442 }
443 pStreamResList->SetAt("Font", pStreamResFontList); 437 pStreamResList->SetAt("Font", pStreamResFontList);
444 } 438 }
445 if (!pStreamResFontList->KeyExist(sFontName)) { 439 if (!pStreamResFontList->KeyExist(sFontName)) {
446 pStreamResFontList->SetAtReference(sFontName, pDoc, pFontDict); 440 pStreamResFontList->SetAtReference(sFontName, pDoc, pFontDict);
447 } 441 }
448 } else { 442 } else {
449 pStreamDict->SetAt("Resources", pFormDict->GetDict("DR")->Clone()); 443 pStreamDict->SetAt("Resources", pFormDict->GetDict("DR")->Clone());
450 pStreamResList = pStreamDict->GetDict("Resources"); 444 pStreamResList = pStreamDict->GetDict("Resources");
451 } 445 }
452 } 446 }
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 pNormalStream->SetData((uint8_t*)sAppStream.GetBuffer(), 671 pNormalStream->SetData((uint8_t*)sAppStream.GetBuffer(),
678 sAppStream.GetSize(), FALSE, FALSE); 672 sAppStream.GetSize(), FALSE, FALSE);
679 pStreamDict = pNormalStream->GetDict(); 673 pStreamDict = pNormalStream->GetDict();
680 if (pStreamDict) { 674 if (pStreamDict) {
681 pStreamDict->SetAtMatrix("Matrix", matrix); 675 pStreamDict->SetAtMatrix("Matrix", matrix);
682 pStreamDict->SetAtRect("BBox", rcBBox); 676 pStreamDict->SetAtRect("BBox", rcBBox);
683 CPDF_Dictionary* pStreamResList = pStreamDict->GetDict("Resources"); 677 CPDF_Dictionary* pStreamResList = pStreamDict->GetDict("Resources");
684 if (pStreamResList) { 678 if (pStreamResList) {
685 CPDF_Dictionary* pStreamResFontList = pStreamResList->GetDict("Font"); 679 CPDF_Dictionary* pStreamResFontList = pStreamResList->GetDict("Font");
686 if (!pStreamResFontList) { 680 if (!pStreamResFontList) {
687 pStreamResFontList = CPDF_Dictionary::Create(); 681 pStreamResFontList = new CPDF_Dictionary;
688 if (!pStreamResFontList) {
689 return FALSE;
690 }
691 pStreamResList->SetAt("Font", pStreamResFontList); 682 pStreamResList->SetAt("Font", pStreamResFontList);
692 } 683 }
693 if (!pStreamResFontList->KeyExist(sFontName)) { 684 if (!pStreamResFontList->KeyExist(sFontName)) {
694 pStreamResFontList->SetAtReference(sFontName, pDoc, pFontDict); 685 pStreamResFontList->SetAtReference(sFontName, pDoc, pFontDict);
695 } 686 }
696 } else { 687 } else {
697 pStreamDict->SetAt("Resources", pFormDict->GetDict("DR")->Clone()); 688 pStreamDict->SetAt("Resources", pFormDict->GetDict("DR")->Clone());
698 pStreamResList = pStreamDict->GetDict("Resources"); 689 pStreamResList = pStreamDict->GetDict("Resources");
699 } 690 }
700 } 691 }
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
922 << "\n"; 913 << "\n";
923 break; 914 break;
924 case CT_CMYK: 915 case CT_CMYK:
925 sColorStream << color.fColor1 << " " << color.fColor2 << " " 916 sColorStream << color.fColor1 << " " << color.fColor2 << " "
926 << color.fColor3 << " " << color.fColor4 << " " 917 << color.fColor3 << " " << color.fColor4 << " "
927 << (bFillOrStroke ? "k" : "K") << "\n"; 918 << (bFillOrStroke ? "k" : "K") << "\n";
928 break; 919 break;
929 } 920 }
930 return sColorStream.GetByteString(); 921 return sColorStream.GetByteString();
931 } 922 }
OLDNEW
« no previous file with comments | « core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp ('k') | core/src/fpdfdoc/doc_basic.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698