| 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 "../../../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 void CPDF_PageObject::Release() | |
| 11 { | |
| 12 delete this; | |
| 13 } | |
| 14 CPDF_PageObject* CPDF_PageObject::Create(int type) | 10 CPDF_PageObject* CPDF_PageObject::Create(int type) |
| 15 { | 11 { |
| 16 switch (type) { | 12 switch (type) { |
| 17 case PDFPAGE_TEXT: | 13 case PDFPAGE_TEXT: |
| 18 return new CPDF_TextObject; | 14 return new CPDF_TextObject; |
| 19 case PDFPAGE_IMAGE: | 15 case PDFPAGE_IMAGE: |
| 20 return new CPDF_ImageObject; | 16 return new CPDF_ImageObject; |
| 21 case PDFPAGE_PATH: | 17 case PDFPAGE_PATH: |
| 22 return new CPDF_PathObject; | 18 return new CPDF_PathObject; |
| 23 case PDFPAGE_SHADING: | 19 case PDFPAGE_SHADING: |
| (...skipping 658 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 CPDF_PageObjects::~CPDF_PageObjects() | 678 CPDF_PageObjects::~CPDF_PageObjects() |
| 683 { | 679 { |
| 684 if (m_pParser) { | 680 if (m_pParser) { |
| 685 delete m_pParser; | 681 delete m_pParser; |
| 686 } | 682 } |
| 687 if (!m_bReleaseMembers) { | 683 if (!m_bReleaseMembers) { |
| 688 return; | 684 return; |
| 689 } | 685 } |
| 690 FX_POSITION pos = m_ObjectList.GetHeadPosition(); | 686 FX_POSITION pos = m_ObjectList.GetHeadPosition(); |
| 691 while (pos) { | 687 while (pos) { |
| 692 CPDF_PageObject* pPageObj = (CPDF_PageObject*)m_ObjectList.GetNext(pos); | 688 delete (CPDF_PageObject*)m_ObjectList.GetNext(pos); |
| 693 if (!pPageObj) { | |
| 694 continue; | |
| 695 } | |
| 696 pPageObj->Release(); | |
| 697 } | 689 } |
| 698 } | 690 } |
| 699 void CPDF_PageObjects::ContinueParse(IFX_Pause* pPause) | 691 void CPDF_PageObjects::ContinueParse(IFX_Pause* pPause) |
| 700 { | 692 { |
| 701 if (m_pParser == NULL) { | 693 if (m_pParser == NULL) { |
| 702 return; | 694 return; |
| 703 } | 695 } |
| 704 m_pParser->Continue(pPause); | 696 m_pParser->Continue(pPause); |
| 705 if (m_pParser->GetStatus() == CPDF_ContentParser::Done) { | 697 if (m_pParser->GetStatus() == CPDF_ContentParser::Done) { |
| 706 m_ParseState = PDF_CONTENT_PARSED; | 698 m_ParseState = PDF_CONTENT_PARSED; |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 801 void CPDF_PageObjects::ClearCacheObjects() | 793 void CPDF_PageObjects::ClearCacheObjects() |
| 802 { | 794 { |
| 803 m_ParseState = PDF_CONTENT_NOT_PARSED; | 795 m_ParseState = PDF_CONTENT_NOT_PARSED; |
| 804 if (m_pParser) { | 796 if (m_pParser) { |
| 805 delete m_pParser; | 797 delete m_pParser; |
| 806 } | 798 } |
| 807 m_pParser = NULL; | 799 m_pParser = NULL; |
| 808 if (m_bReleaseMembers) { | 800 if (m_bReleaseMembers) { |
| 809 FX_POSITION pos = m_ObjectList.GetHeadPosition(); | 801 FX_POSITION pos = m_ObjectList.GetHeadPosition(); |
| 810 while (pos) { | 802 while (pos) { |
| 811 CPDF_PageObject* pPageObj = (CPDF_PageObject*)m_ObjectList.GetNext(p
os); | 803 delete (CPDF_PageObject*)m_ObjectList.GetNext(pos); |
| 812 if (!pPageObj) { | |
| 813 continue; | |
| 814 } | |
| 815 pPageObj->Release(); | |
| 816 } | 804 } |
| 817 } | 805 } |
| 818 m_ObjectList.RemoveAll(); | 806 m_ObjectList.RemoveAll(); |
| 819 } | 807 } |
| 820 CPDF_Page::CPDF_Page() | 808 CPDF_Page::CPDF_Page() |
| 821 { | 809 { |
| 822 m_pPageRender = NULL; | 810 m_pPageRender = NULL; |
| 823 } | 811 } |
| 824 void CPDF_Page::Load(CPDF_Document* pDocument, CPDF_Dictionary* pPageDict, FX_BO
OL bPageCache) | 812 void CPDF_Page::Load(CPDF_Document* pDocument, CPDF_Dictionary* pPageDict, FX_BO
OL bPageCache) |
| 825 { | 813 { |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1031 matrix = m_PageMatrix; | 1019 matrix = m_PageMatrix; |
| 1032 matrix.Concat(display_matrix); | 1020 matrix.Concat(display_matrix); |
| 1033 } | 1021 } |
| 1034 CPDF_ParseOptions::CPDF_ParseOptions() | 1022 CPDF_ParseOptions::CPDF_ParseOptions() |
| 1035 { | 1023 { |
| 1036 m_bTextOnly = FALSE; | 1024 m_bTextOnly = FALSE; |
| 1037 m_bMarkedContent = TRUE; | 1025 m_bMarkedContent = TRUE; |
| 1038 m_bSeparateForm = TRUE; | 1026 m_bSeparateForm = TRUE; |
| 1039 m_bDecodeInlineImage = FALSE; | 1027 m_bDecodeInlineImage = FALSE; |
| 1040 } | 1028 } |
| OLD | NEW |