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

Side by Side Diff: core/src/fpdfapi/fpdf_edit/fpdf_edit_doc.cpp

Issue 1520063002: Get rid of most instance of 'foo == NULL' (Closed) Base URL: https://pdfium.googlesource.com/pdfium@bstr_isnull
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
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 <limits.h> 7 #include <limits.h>
8 8
9 #include "core/include/fpdfapi/fpdf_module.h" 9 #include "core/include/fpdfapi/fpdf_module.h"
10 #include "core/include/fpdfapi/fpdf_page.h" 10 #include "core/include/fpdfapi/fpdf_page.h"
11 #include "core/src/fpdfapi/fpdf_page/pageint.h" 11 #include "core/src/fpdfapi/fpdf_page/pageint.h"
12 12
13 CPDF_Document::CPDF_Document() : CPDF_IndirectObjects(NULL) { 13 CPDF_Document::CPDF_Document() : CPDF_IndirectObjects(NULL) {
14 m_pRootDict = NULL; 14 m_pRootDict = NULL;
15 m_pInfoDict = NULL; 15 m_pInfoDict = NULL;
16 m_bLinearized = FALSE; 16 m_bLinearized = FALSE;
17 m_dwFirstPageNo = 0; 17 m_dwFirstPageNo = 0;
18 m_dwFirstPageObjNum = 0; 18 m_dwFirstPageObjNum = 0;
19 m_pDocPage = CPDF_ModuleMgr::Get()->GetPageModule()->CreateDocData(this); 19 m_pDocPage = CPDF_ModuleMgr::Get()->GetPageModule()->CreateDocData(this);
20 m_pDocRender = CPDF_ModuleMgr::Get()->GetRenderModule()->CreateDocData(this); 20 m_pDocRender = CPDF_ModuleMgr::Get()->GetRenderModule()->CreateDocData(this);
21 } 21 }
22 void CPDF_Document::CreateNewDoc() { 22 void CPDF_Document::CreateNewDoc() {
23 ASSERT(m_pRootDict == NULL && m_pInfoDict == NULL); 23 ASSERT(!m_pRootDict && !m_pInfoDict);
24 m_pRootDict = new CPDF_Dictionary; 24 m_pRootDict = new CPDF_Dictionary;
25 m_pRootDict->SetAtName("Type", "Catalog"); 25 m_pRootDict->SetAtName("Type", "Catalog");
26 int objnum = AddIndirectObject(m_pRootDict); 26 int objnum = AddIndirectObject(m_pRootDict);
27 CPDF_Dictionary* pPages = new CPDF_Dictionary; 27 CPDF_Dictionary* pPages = new CPDF_Dictionary;
28 pPages->SetAtName("Type", "Pages"); 28 pPages->SetAtName("Type", "Pages");
29 pPages->SetAtNumber("Count", 0); 29 pPages->SetAtNumber("Count", 0);
30 pPages->SetAt("Kids", new CPDF_Array); 30 pPages->SetAt("Kids", new CPDF_Array);
31 objnum = AddIndirectObject(pPages); 31 objnum = AddIndirectObject(pPages);
32 m_pRootDict->SetAtReference("Pages", this, objnum); 32 m_pRootDict->SetAtReference("Pages", this, objnum);
33 m_pInfoDict = new CPDF_Dictionary; 33 m_pInfoDict = new CPDF_Dictionary;
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 pWidthArray1->AddInteger(widths[i]); 543 pWidthArray1->AddInteger(widths[i]);
544 } 544 }
545 } 545 }
546 FX_Free(widths); 546 FX_Free(widths);
547 } 547 }
548 CPDF_Font* CPDF_Document::AddMacFont(CTFontRef pFont, 548 CPDF_Font* CPDF_Document::AddMacFont(CTFontRef pFont,
549 FX_BOOL bVert, 549 FX_BOOL bVert,
550 FX_BOOL bTranslateName) { 550 FX_BOOL bTranslateName) {
551 CTFontRef font = (CTFontRef)pFont; 551 CTFontRef font = (CTFontRef)pFont;
552 CTFontDescriptorRef descriptor = CTFontCopyFontDescriptor(font); 552 CTFontDescriptorRef descriptor = CTFontCopyFontDescriptor(font);
553 if (descriptor == NULL) { 553 if (!descriptor) {
554 return NULL; 554 return NULL;
555 } 555 }
556 CFX_ByteString basefont; 556 CFX_ByteString basefont;
557 FX_BOOL bCJK = FALSE; 557 FX_BOOL bCJK = FALSE;
558 int flags = 0, italicangle = 0, ascend = 0, descend = 0, capheight = 0, 558 int flags = 0, italicangle = 0, ascend = 0, descend = 0, capheight = 0,
559 bbox[4]; 559 bbox[4];
560 FXSYS_memset(bbox, 0, sizeof(int) * 4); 560 FXSYS_memset(bbox, 0, sizeof(int) * 4);
561 CFArrayRef languages = (CFArrayRef)CTFontDescriptorCopyAttribute( 561 CFArrayRef languages = (CFArrayRef)CTFontDescriptorCopyAttribute(
562 descriptor, kCTFontLanguagesAttribute); 562 descriptor, kCTFontLanguagesAttribute);
563 if (languages == NULL) { 563 if (!languages) {
564 CFRelease(descriptor); 564 CFRelease(descriptor);
565 return NULL; 565 return NULL;
566 } 566 }
567 CFX_DWordArray charSets; 567 CFX_DWordArray charSets;
568 charSets.Add(FXFONT_CHINESEBIG5_CHARSET); 568 charSets.Add(FXFONT_CHINESEBIG5_CHARSET);
569 charSets.Add(FXFONT_GB2312_CHARSET); 569 charSets.Add(FXFONT_GB2312_CHARSET);
570 charSets.Add(FXFONT_HANGEUL_CHARSET); 570 charSets.Add(FXFONT_HANGEUL_CHARSET);
571 charSets.Add(FXFONT_SHIFTJIS_CHARSET); 571 charSets.Add(FXFONT_SHIFTJIS_CHARSET);
572 if (IsHasCharSet(languages, charSets)) { 572 if (IsHasCharSet(languages, charSets)) {
573 bCJK = TRUE; 573 bCJK = TRUE;
574 } 574 }
575 CFRelease(descriptor); 575 CFRelease(descriptor);
576 CFDictionaryRef traits = (CFDictionaryRef)CTFontCopyTraits(font); 576 CFDictionaryRef traits = (CFDictionaryRef)CTFontCopyTraits(font);
577 if (traits == NULL) { 577 if (!traits) {
578 CFRelease(languages); 578 CFRelease(languages);
579 return NULL; 579 return NULL;
580 } 580 }
581 CFNumberRef sybolicTrait = 581 CFNumberRef sybolicTrait =
582 (CFNumberRef)CFDictionaryGetValue(traits, kCTFontSymbolicTrait); 582 (CFNumberRef)CFDictionaryGetValue(traits, kCTFontSymbolicTrait);
583 CTFontSymbolicTraits trait = 0; 583 CTFontSymbolicTraits trait = 0;
584 CFNumberGetValue(sybolicTrait, kCFNumberSInt32Type, &trait); 584 CFNumberGetValue(sybolicTrait, kCFNumberSInt32Type, &trait);
585 if (trait & kCTFontItalicTrait) { 585 if (trait & kCTFontItalicTrait) {
586 flags |= PDFFONT_ITALIC; 586 flags |= PDFFONT_ITALIC;
587 } 587 }
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 CPDF_Array* pWidthArray1 = new CPDF_Array; 818 CPDF_Array* pWidthArray1 = new CPDF_Array;
819 pWidthArray->Add(pWidthArray1); 819 pWidthArray->Add(pWidthArray1);
820 for (i = 0; i < size; i++) { 820 for (i = 0; i < size; i++) {
821 pWidthArray1->AddInteger(widths[i]); 821 pWidthArray1->AddInteger(widths[i]);
822 } 822 }
823 } 823 }
824 FX_Free(widths); 824 FX_Free(widths);
825 } 825 }
826 826
827 CPDF_Font* CPDF_Document::AddFont(CFX_Font* pFont, int charset, FX_BOOL bVert) { 827 CPDF_Font* CPDF_Document::AddFont(CFX_Font* pFont, int charset, FX_BOOL bVert) {
828 if (pFont == NULL) { 828 if (!pFont) {
829 return NULL; 829 return NULL;
830 } 830 }
831 FX_BOOL bCJK = charset == FXFONT_CHINESEBIG5_CHARSET || 831 FX_BOOL bCJK = charset == FXFONT_CHINESEBIG5_CHARSET ||
832 charset == FXFONT_GB2312_CHARSET || 832 charset == FXFONT_GB2312_CHARSET ||
833 charset == FXFONT_HANGEUL_CHARSET || 833 charset == FXFONT_HANGEUL_CHARSET ||
834 charset == FXFONT_SHIFTJIS_CHARSET; 834 charset == FXFONT_SHIFTJIS_CHARSET;
835 CFX_ByteString basefont = pFont->GetFamilyName(); 835 CFX_ByteString basefont = pFont->GetFamilyName();
836 basefont.Replace(" ", ""); 836 basefont.Replace(" ", "");
837 int flags = 0; 837 int flags = 0;
838 if (pFont->IsBold()) { 838 if (pFont->IsBold()) {
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
1111 CPDF_Font* CPDF_Document::AddStandardFont(const FX_CHAR* font, 1111 CPDF_Font* CPDF_Document::AddStandardFont(const FX_CHAR* font,
1112 CPDF_FontEncoding* pEncoding) { 1112 CPDF_FontEncoding* pEncoding) {
1113 CFX_ByteString name(font); 1113 CFX_ByteString name(font);
1114 if (PDF_GetStandardFontName(&name) < 0) 1114 if (PDF_GetStandardFontName(&name) < 0)
1115 return nullptr; 1115 return nullptr;
1116 return GetPageData()->GetStandardFont(name, pEncoding); 1116 return GetPageData()->GetStandardFont(name, pEncoding);
1117 } 1117 }
1118 1118
1119 void CPDF_Document::DeletePage(int iPage) { 1119 void CPDF_Document::DeletePage(int iPage) {
1120 CPDF_Dictionary* pRoot = GetRoot(); 1120 CPDF_Dictionary* pRoot = GetRoot();
1121 if (pRoot == NULL) { 1121 if (!pRoot) {
1122 return; 1122 return;
1123 } 1123 }
1124 CPDF_Dictionary* pPages = pRoot->GetDict("Pages"); 1124 CPDF_Dictionary* pPages = pRoot->GetDict("Pages");
1125 if (pPages == NULL) { 1125 if (!pPages) {
1126 return; 1126 return;
1127 } 1127 }
1128 int nPages = pPages->GetInteger("Count"); 1128 int nPages = pPages->GetInteger("Count");
1129 if (iPage < 0 || iPage >= nPages) { 1129 if (iPage < 0 || iPage >= nPages) {
1130 return; 1130 return;
1131 } 1131 }
1132 CFX_ArrayTemplate<CPDF_Dictionary*> stack; 1132 CFX_ArrayTemplate<CPDF_Dictionary*> stack;
1133 stack.Add(pPages); 1133 stack.Add(pPages);
1134 if (InsertDeletePDFPage(this, pPages, iPage, NULL, FALSE, stack) < 0) { 1134 if (InsertDeletePDFPage(this, pPages, iPage, NULL, FALSE, stack) < 0) {
1135 return; 1135 return;
1136 } 1136 }
1137 m_PageList.RemoveAt(iPage); 1137 m_PageList.RemoveAt(iPage);
1138 } 1138 }
1139 CPDF_Object* FPDFAPI_GetPageAttr(CPDF_Dictionary* pPageDict, 1139 CPDF_Object* FPDFAPI_GetPageAttr(CPDF_Dictionary* pPageDict,
1140 const CFX_ByteStringC& name); 1140 const CFX_ByteStringC& name);
1141 void FPDFAPI_FlatPageAttr(CPDF_Dictionary* pPageDict, 1141 void FPDFAPI_FlatPageAttr(CPDF_Dictionary* pPageDict,
1142 const CFX_ByteStringC& name) { 1142 const CFX_ByteStringC& name) {
1143 if (pPageDict->KeyExist(name)) { 1143 if (pPageDict->KeyExist(name)) {
1144 return; 1144 return;
1145 } 1145 }
1146 CPDF_Object* pObj = FPDFAPI_GetPageAttr(pPageDict, name); 1146 CPDF_Object* pObj = FPDFAPI_GetPageAttr(pPageDict, name);
1147 if (pObj) { 1147 if (pObj) {
1148 pPageDict->SetAt(name, pObj->Clone()); 1148 pPageDict->SetAt(name, pObj->Clone());
1149 } 1149 }
1150 } 1150 }
OLDNEW
« no previous file with comments | « core/src/fpdfapi/fpdf_edit/fpdf_edit_create.cpp ('k') | core/src/fpdfapi/fpdf_edit/fpdf_edit_image.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698