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

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

Issue 1257503002: FX_BOOL not always 0 or 1 in CPDF_PageObjects::m_ParserState (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Dead Code. Created 5 years, 5 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 | « core/include/fpdfapi/fpdf_page.h ('k') | core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.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 "../../../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 702 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 } 713 }
714 void CPDF_FormObject::CalcBoundingBox() 714 void CPDF_FormObject::CalcBoundingBox()
715 { 715 {
716 CFX_FloatRect form_rect = m_pForm->CalcBoundingBox(); 716 CFX_FloatRect form_rect = m_pForm->CalcBoundingBox();
717 form_rect.Transform(&m_FormMatrix); 717 form_rect.Transform(&m_FormMatrix);
718 m_Left = form_rect.left; 718 m_Left = form_rect.left;
719 m_Bottom = form_rect.bottom; 719 m_Bottom = form_rect.bottom;
720 m_Right = form_rect.right; 720 m_Right = form_rect.right;
721 m_Top = form_rect.top; 721 m_Top = form_rect.top;
722 } 722 }
723 CPDF_PageObjects::CPDF_PageObjects(FX_BOOL bReleaseMembers) : m_ObjectList(128) 723 CPDF_PageObjects::CPDF_PageObjects(FX_BOOL bReleaseMembers)
724 : m_pFormDict(nullptr),
725 m_pFormStream(nullptr),
726 m_pDocument(nullptr),
727 m_pPageResources(nullptr),
728 m_pResources(nullptr),
729 m_Transparency(0),
730 m_ObjectList(128),
731 m_bBackgroundAlphaNeeded(FALSE),
732 m_bReleaseMembers(bReleaseMembers),
733 m_pParser(nullptr),
734 m_ParseState(CONTENT_NOT_PARSED)
724 { 735 {
725 m_bBackgroundAlphaNeeded = FALSE;
726 m_bReleaseMembers = bReleaseMembers;
727 m_ParseState = PDF_CONTENT_NOT_PARSED;
728 m_pParser = NULL;
729 m_pFormStream = NULL;
730 m_pResources = NULL;
731 } 736 }
732 CPDF_PageObjects::~CPDF_PageObjects() 737 CPDF_PageObjects::~CPDF_PageObjects()
733 { 738 {
734 delete m_pParser; 739 delete m_pParser;
735 if (!m_bReleaseMembers) { 740 if (!m_bReleaseMembers) {
736 return; 741 return;
737 } 742 }
738 FX_POSITION pos = m_ObjectList.GetHeadPosition(); 743 FX_POSITION pos = m_ObjectList.GetHeadPosition();
739 while (pos) { 744 while (pos) {
740 delete (CPDF_PageObject*)m_ObjectList.GetNext(pos); 745 delete (CPDF_PageObject*)m_ObjectList.GetNext(pos);
741 } 746 }
742 } 747 }
743 void CPDF_PageObjects::ContinueParse(IFX_Pause* pPause) 748 void CPDF_PageObjects::ContinueParse(IFX_Pause* pPause)
744 { 749 {
745 if (m_pParser == NULL) { 750 if (m_pParser == NULL) {
746 return; 751 return;
747 } 752 }
748 m_pParser->Continue(pPause); 753 m_pParser->Continue(pPause);
749 if (m_pParser->GetStatus() == CPDF_ContentParser::Done) { 754 if (m_pParser->GetStatus() == CPDF_ContentParser::Done) {
750 m_ParseState = PDF_CONTENT_PARSED; 755 m_ParseState = CONTENT_PARSED;
751 delete m_pParser; 756 delete m_pParser;
752 m_pParser = NULL; 757 m_pParser = NULL;
753 } 758 }
754 } 759 }
755 int CPDF_PageObjects::EstimateParseProgress() const
756 {
757 if (!m_pParser) {
758 return m_ParseState == PDF_CONTENT_PARSED ? 100 : 0;
759 }
760 return m_pParser->EstimateProgress();
761 }
762 FX_POSITION CPDF_PageObjects::InsertObject(FX_POSITION posInsertAfter, CPDF_Page Object* pNewObject) 760 FX_POSITION CPDF_PageObjects::InsertObject(FX_POSITION posInsertAfter, CPDF_Page Object* pNewObject)
763 { 761 {
764 if (!posInsertAfter) { 762 if (!posInsertAfter) {
765 return m_ObjectList.AddHead(pNewObject); 763 return m_ObjectList.AddHead(pNewObject);
766 } 764 }
767 return m_ObjectList.InsertAfter(posInsertAfter, pNewObject); 765 return m_ObjectList.InsertAfter(posInsertAfter, pNewObject);
768 } 766 }
769 int CPDF_PageObjects::GetObjectIndex(CPDF_PageObject* pObj) const 767 int CPDF_PageObjects::GetObjectIndex(CPDF_PageObject* pObj) const
770 { 768 {
771 int index = 0; 769 int index = 0;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 m_Transparency |= PDFTRANS_GROUP; 834 m_Transparency |= PDFTRANS_GROUP;
837 if (pGroup->GetInteger(FX_BSTRC("I"))) { 835 if (pGroup->GetInteger(FX_BSTRC("I"))) {
838 m_Transparency |= PDFTRANS_ISOLATED; 836 m_Transparency |= PDFTRANS_ISOLATED;
839 } 837 }
840 if (pGroup->GetInteger(FX_BSTRC("K"))) { 838 if (pGroup->GetInteger(FX_BSTRC("K"))) {
841 m_Transparency |= PDFTRANS_KNOCKOUT; 839 m_Transparency |= PDFTRANS_KNOCKOUT;
842 } 840 }
843 } 841 }
844 void CPDF_PageObjects::ClearCacheObjects() 842 void CPDF_PageObjects::ClearCacheObjects()
845 { 843 {
846 m_ParseState = PDF_CONTENT_NOT_PARSED; 844 m_ParseState = CONTENT_NOT_PARSED;
847 delete m_pParser; 845 delete m_pParser;
848 m_pParser = NULL; 846 m_pParser = NULL;
849 if (m_bReleaseMembers) { 847 if (m_bReleaseMembers) {
850 FX_POSITION pos = m_ObjectList.GetHeadPosition(); 848 FX_POSITION pos = m_ObjectList.GetHeadPosition();
851 while (pos) { 849 while (pos) {
852 delete (CPDF_PageObject*)m_ObjectList.GetNext(pos); 850 delete (CPDF_PageObject*)m_ObjectList.GetNext(pos);
853 } 851 }
854 } 852 }
855 m_ObjectList.RemoveAll(); 853 m_ObjectList.RemoveAll();
856 } 854 }
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 break; 921 break;
924 } 922 }
925 m_Transparency = PDFTRANS_ISOLATED; 923 m_Transparency = PDFTRANS_ISOLATED;
926 LoadTransInfo(); 924 LoadTransInfo();
927 } 925 }
928 void CPDF_Page::StartParse(CPDF_ParseOptions* pOptions, FX_BOOL bReParse) 926 void CPDF_Page::StartParse(CPDF_ParseOptions* pOptions, FX_BOOL bReParse)
929 { 927 {
930 if (bReParse) { 928 if (bReParse) {
931 ClearCacheObjects(); 929 ClearCacheObjects();
932 } 930 }
933 if (m_ParseState == PDF_CONTENT_PARSED || m_ParseState == PDF_CONTENT_PARSIN G) { 931 if (m_ParseState == CONTENT_PARSED || m_ParseState == CONTENT_PARSING) {
934 return; 932 return;
935 } 933 }
936 m_pParser = new CPDF_ContentParser; 934 m_pParser = new CPDF_ContentParser;
937 m_pParser->Start(this, pOptions); 935 m_pParser->Start(this, pOptions);
938 m_ParseState = PDF_CONTENT_PARSING; 936 m_ParseState = CONTENT_PARSING;
939 } 937 }
940 void CPDF_Page::ParseContent(CPDF_ParseOptions* pOptions, FX_BOOL bReParse) 938 void CPDF_Page::ParseContent(CPDF_ParseOptions* pOptions, FX_BOOL bReParse)
941 { 939 {
942 StartParse(pOptions, bReParse); 940 StartParse(pOptions, bReParse);
943 ContinueParse(NULL); 941 ContinueParse(NULL);
944 } 942 }
945 CPDF_Page::~CPDF_Page() 943 CPDF_Page::~CPDF_Page()
946 { 944 {
947 if (m_pPageRender) { 945 if (m_pPageRender) {
948 IPDF_RenderModule* pModule = CPDF_ModuleMgr::Get()->GetRenderModule(); 946 IPDF_RenderModule* pModule = CPDF_ModuleMgr::Get()->GetRenderModule();
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 } 985 }
988 m_Transparency = 0; 986 m_Transparency = 0;
989 LoadTransInfo(); 987 LoadTransInfo();
990 } 988 }
991 CPDF_Form::~CPDF_Form() 989 CPDF_Form::~CPDF_Form()
992 { 990 {
993 } 991 }
994 void CPDF_Form::StartParse(CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* pPa rentMatrix, 992 void CPDF_Form::StartParse(CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* pPa rentMatrix,
995 CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOptio ns, int level) 993 CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOptio ns, int level)
996 { 994 {
997 if (m_ParseState == PDF_CONTENT_PARSED || m_ParseState == PDF_CONTENT_PARSIN G) { 995 if (m_ParseState == CONTENT_PARSED || m_ParseState == CONTENT_PARSING) {
998 return; 996 return;
999 } 997 }
1000 m_pParser = new CPDF_ContentParser; 998 m_pParser = new CPDF_ContentParser;
1001 m_pParser->Start(this, pGraphicStates, pParentMatrix, pType3Char, pOptions, level); 999 m_pParser->Start(this, pGraphicStates, pParentMatrix, pType3Char, pOptions, level);
1002 m_ParseState = PDF_CONTENT_PARSING; 1000 m_ParseState = CONTENT_PARSING;
1003 } 1001 }
1004 void CPDF_Form::ParseContent(CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* p ParentMatrix, 1002 void CPDF_Form::ParseContent(CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* p ParentMatrix,
1005 CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOpt ions, int level) 1003 CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOpt ions, int level)
1006 { 1004 {
1007 StartParse(pGraphicStates, pParentMatrix, pType3Char, pOptions, level); 1005 StartParse(pGraphicStates, pParentMatrix, pType3Char, pOptions, level);
1008 ContinueParse(NULL); 1006 ContinueParse(NULL);
1009 } 1007 }
1010 CPDF_Form* CPDF_Form::Clone() const 1008 CPDF_Form* CPDF_Form::Clone() const
1011 { 1009 {
1012 CPDF_Form* pClone = new CPDF_Form(m_pDocument, m_pPageResources, m_pFormStre am, m_pResources); 1010 CPDF_Form* pClone = new CPDF_Form(m_pDocument, m_pPageResources, m_pFormStre am, m_pResources);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1068 matrix = m_PageMatrix; 1066 matrix = m_PageMatrix;
1069 matrix.Concat(display_matrix); 1067 matrix.Concat(display_matrix);
1070 } 1068 }
1071 CPDF_ParseOptions::CPDF_ParseOptions() 1069 CPDF_ParseOptions::CPDF_ParseOptions()
1072 { 1070 {
1073 m_bTextOnly = FALSE; 1071 m_bTextOnly = FALSE;
1074 m_bMarkedContent = TRUE; 1072 m_bMarkedContent = TRUE;
1075 m_bSeparateForm = TRUE; 1073 m_bSeparateForm = TRUE;
1076 m_bDecodeInlineImage = FALSE; 1074 m_bDecodeInlineImage = FALSE;
1077 } 1075 }
OLDNEW
« no previous file with comments | « core/include/fpdfapi/fpdf_page.h ('k') | core/src/fpdfapi/fpdf_page/fpdf_page_parser_old.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698