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

Side by Side Diff: core/src/fpdfapi/fpdf_page/fpdf_page.cpp

Issue 1192743004: Cleanup: Do not check pointers before deleting them. (Closed) Base URL: https://pdfium.googlesource.com/pdfium@master
Patch Set: Created 5 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
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 "../../../include/fpdfapi/fpdf_page.h" 7 #include "../../../include/fpdfapi/fpdf_page.h"
8 #include "../../../include/fpdfapi/fpdf_module.h" 8 #include "../../../include/fpdfapi/fpdf_module.h"
9 #include "pageint.h" 9 #include "pageint.h"
10 CPDF_PageObject* CPDF_PageObject::Create(int type) 10 CPDF_PageObject* CPDF_PageObject::Create(int type)
(...skipping 623 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 return; 634 return;
635 } 635 }
636 CFX_FloatRect rect = m_ClipPath.GetClipBox(); 636 CFX_FloatRect rect = m_ClipPath.GetClipBox();
637 m_Left = rect.left; 637 m_Left = rect.left;
638 m_Bottom = rect.bottom; 638 m_Bottom = rect.bottom;
639 m_Right = rect.right; 639 m_Right = rect.right;
640 m_Top = rect.top; 640 m_Top = rect.top;
641 } 641 }
642 CPDF_FormObject::~CPDF_FormObject() 642 CPDF_FormObject::~CPDF_FormObject()
643 { 643 {
644 if (m_pForm) { 644 delete m_pForm;
645 delete m_pForm;
646 }
647 } 645 }
648 void CPDF_FormObject::Transform(const CFX_AffineMatrix& matrix) 646 void CPDF_FormObject::Transform(const CFX_AffineMatrix& matrix)
649 { 647 {
650 m_FormMatrix.Concat(matrix); 648 m_FormMatrix.Concat(matrix);
651 CalcBoundingBox(); 649 CalcBoundingBox();
652 } 650 }
653 void CPDF_FormObject::CopyData(const CPDF_PageObject* pSrc) 651 void CPDF_FormObject::CopyData(const CPDF_PageObject* pSrc)
654 { 652 {
655 const CPDF_FormObject* pSrcObj = (const CPDF_FormObject*)pSrc; 653 const CPDF_FormObject* pSrcObj = (const CPDF_FormObject*)pSrc;
656 if (m_pForm) { 654 delete m_pForm;
657 delete m_pForm;
658 }
659 m_pForm = pSrcObj->m_pForm->Clone(); 655 m_pForm = pSrcObj->m_pForm->Clone();
660 m_FormMatrix = pSrcObj->m_FormMatrix; 656 m_FormMatrix = pSrcObj->m_FormMatrix;
661 } 657 }
662 void CPDF_FormObject::CalcBoundingBox() 658 void CPDF_FormObject::CalcBoundingBox()
663 { 659 {
664 CFX_FloatRect form_rect = m_pForm->CalcBoundingBox(); 660 CFX_FloatRect form_rect = m_pForm->CalcBoundingBox();
665 form_rect.Transform(&m_FormMatrix); 661 form_rect.Transform(&m_FormMatrix);
666 m_Left = form_rect.left; 662 m_Left = form_rect.left;
667 m_Bottom = form_rect.bottom; 663 m_Bottom = form_rect.bottom;
668 m_Right = form_rect.right; 664 m_Right = form_rect.right;
669 m_Top = form_rect.top; 665 m_Top = form_rect.top;
670 } 666 }
671 CPDF_PageObjects::CPDF_PageObjects(FX_BOOL bReleaseMembers) : m_ObjectList(128) 667 CPDF_PageObjects::CPDF_PageObjects(FX_BOOL bReleaseMembers) : m_ObjectList(128)
672 { 668 {
673 m_bBackgroundAlphaNeeded = FALSE; 669 m_bBackgroundAlphaNeeded = FALSE;
674 m_bReleaseMembers = bReleaseMembers; 670 m_bReleaseMembers = bReleaseMembers;
675 m_ParseState = PDF_CONTENT_NOT_PARSED; 671 m_ParseState = PDF_CONTENT_NOT_PARSED;
676 m_pParser = NULL; 672 m_pParser = NULL;
677 m_pFormStream = NULL; 673 m_pFormStream = NULL;
678 m_pResources = NULL; 674 m_pResources = NULL;
679 } 675 }
680 CPDF_PageObjects::~CPDF_PageObjects() 676 CPDF_PageObjects::~CPDF_PageObjects()
681 { 677 {
682 if (m_pParser) { 678 delete m_pParser;
683 delete m_pParser;
684 }
685 if (!m_bReleaseMembers) { 679 if (!m_bReleaseMembers) {
686 return; 680 return;
687 } 681 }
688 FX_POSITION pos = m_ObjectList.GetHeadPosition(); 682 FX_POSITION pos = m_ObjectList.GetHeadPosition();
689 while (pos) { 683 while (pos) {
690 delete (CPDF_PageObject*)m_ObjectList.GetNext(pos); 684 delete (CPDF_PageObject*)m_ObjectList.GetNext(pos);
691 } 685 }
692 } 686 }
693 void CPDF_PageObjects::ContinueParse(IFX_Pause* pPause) 687 void CPDF_PageObjects::ContinueParse(IFX_Pause* pPause)
694 { 688 {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
788 if (pGroup->GetInteger(FX_BSTRC("I"))) { 782 if (pGroup->GetInteger(FX_BSTRC("I"))) {
789 m_Transparency |= PDFTRANS_ISOLATED; 783 m_Transparency |= PDFTRANS_ISOLATED;
790 } 784 }
791 if (pGroup->GetInteger(FX_BSTRC("K"))) { 785 if (pGroup->GetInteger(FX_BSTRC("K"))) {
792 m_Transparency |= PDFTRANS_KNOCKOUT; 786 m_Transparency |= PDFTRANS_KNOCKOUT;
793 } 787 }
794 } 788 }
795 void CPDF_PageObjects::ClearCacheObjects() 789 void CPDF_PageObjects::ClearCacheObjects()
796 { 790 {
797 m_ParseState = PDF_CONTENT_NOT_PARSED; 791 m_ParseState = PDF_CONTENT_NOT_PARSED;
798 if (m_pParser) { 792 delete m_pParser;
799 delete m_pParser;
800 }
801 m_pParser = NULL; 793 m_pParser = NULL;
802 if (m_bReleaseMembers) { 794 if (m_bReleaseMembers) {
803 FX_POSITION pos = m_ObjectList.GetHeadPosition(); 795 FX_POSITION pos = m_ObjectList.GetHeadPosition();
804 while (pos) { 796 while (pos) {
805 delete (CPDF_PageObject*)m_ObjectList.GetNext(pos); 797 delete (CPDF_PageObject*)m_ObjectList.GetNext(pos);
806 } 798 }
807 } 799 }
808 m_ObjectList.RemoveAll(); 800 m_ObjectList.RemoveAll();
809 } 801 }
810 CPDF_Page::CPDF_Page() 802 CPDF_Page::CPDF_Page()
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
1021 matrix = m_PageMatrix; 1013 matrix = m_PageMatrix;
1022 matrix.Concat(display_matrix); 1014 matrix.Concat(display_matrix);
1023 } 1015 }
1024 CPDF_ParseOptions::CPDF_ParseOptions() 1016 CPDF_ParseOptions::CPDF_ParseOptions()
1025 { 1017 {
1026 m_bTextOnly = FALSE; 1018 m_bTextOnly = FALSE;
1027 m_bMarkedContent = TRUE; 1019 m_bMarkedContent = TRUE;
1028 m_bSeparateForm = TRUE; 1020 m_bSeparateForm = TRUE;
1029 m_bDecodeInlineImage = FALSE; 1021 m_bDecodeInlineImage = FALSE;
1030 } 1022 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698