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

Side by Side Diff: xfa/fxfa/parser/xfa_parser_imp.cpp

Issue 1981003002: Replace Release() { delete this; } in fde_xml_imp.h (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Revert accident with editor. Created 4 years, 7 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 | « xfa/fxfa/parser/xfa_parser_imp.h ('k') | no next file » | 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 "xfa/fxfa/parser/xfa_parser_imp.h" 7 #include "xfa/fxfa/parser/xfa_parser_imp.h"
8 8
9 #include "xfa/fde/xml/fde_xml_imp.h" 9 #include "xfa/fde/xml/fde_xml_imp.h"
10 #include "xfa/fgas/crt/fgas_codepage.h" 10 #include "xfa/fgas/crt/fgas_codepage.h"
(...skipping 662 matching lines...) Expand 10 before | Expand all | Expand 10 after
673 static_cast<CFDE_XMLElement*>(pXMLDocumentNode) 673 static_cast<CFDE_XMLElement*>(pXMLDocumentNode)
674 ->RemoveAttribute(L"xmlns:xfa"); 674 ->RemoveAttribute(L"xmlns:xfa");
675 } 675 }
676 pDataElement->InsertChildNode(pXMLDocumentNode); 676 pDataElement->InsertChildNode(pXMLDocumentNode);
677 pDataXMLNode = pDataElement; 677 pDataXMLNode = pDataElement;
678 } 678 }
679 if (pDataXMLNode) { 679 if (pDataXMLNode) {
680 CXFA_Node* pNode = 680 CXFA_Node* pNode =
681 m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataGroup); 681 m_pFactory->CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataGroup);
682 if (!pNode) { 682 if (!pNode) {
683 if (pDataXMLNode != pXMLDocumentNode) { 683 if (pDataXMLNode != pXMLDocumentNode)
684 pDataXMLNode->Release(); 684 delete pDataXMLNode;
685 } 685 return nullptr;
686 return NULL;
687 } 686 }
688 CFX_WideString wsLocalName; 687 CFX_WideString wsLocalName;
689 static_cast<CFDE_XMLElement*>(pDataXMLNode)->GetLocalTagName(wsLocalName); 688 static_cast<CFDE_XMLElement*>(pDataXMLNode)->GetLocalTagName(wsLocalName);
690 pNode->SetCData(XFA_ATTRIBUTE_Name, wsLocalName); 689 pNode->SetCData(XFA_ATTRIBUTE_Name, wsLocalName);
691 if (!DataLoader(pNode, pDataXMLNode, TRUE)) { 690 if (!DataLoader(pNode, pDataXMLNode, TRUE)) {
692 return NULL; 691 return NULL;
693 } 692 }
694 pNode->SetXMLMappingNode(pDataXMLNode); 693 pNode->SetXMLMappingNode(pDataXMLNode);
695 if (pDataXMLNode != pXMLDocumentNode) { 694 if (pDataXMLNode != pXMLDocumentNode) {
696 pNode->SetFlag(XFA_NODEFLAG_OwnXMLNode, false); 695 pNode->SetFlag(XFA_NODEFLAG_OwnXMLNode, false);
(...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after
1328 if (pXMLInstruction->GetData(0, wsData) && 1327 if (pXMLInstruction->GetData(0, wsData) &&
1329 wsData == FX_WSTRC(L"JavaScript")) { 1328 wsData == FX_WSTRC(L"JavaScript")) {
1330 if (pXMLInstruction->GetData(1, wsData) && 1329 if (pXMLInstruction->GetData(1, wsData) &&
1331 wsData == FX_WSTRC(L"strictScoping")) { 1330 wsData == FX_WSTRC(L"strictScoping")) {
1332 pXFANode->GetDocument()->SetFlag(XFA_DOCFLAG_StrictScoping, TRUE); 1331 pXFANode->GetDocument()->SetFlag(XFA_DOCFLAG_StrictScoping, TRUE);
1333 } 1332 }
1334 } 1333 }
1335 } 1334 }
1336 } 1335 }
1337 void CXFA_SimpleParser::CloseParser() { 1336 void CXFA_SimpleParser::CloseParser() {
1338 if (m_pXMLDoc) { 1337 delete m_pXMLDoc;
1339 m_pXMLDoc->Release(); 1338 m_pXMLDoc = nullptr;
1340 m_pXMLDoc = NULL;
1341 }
1342 if (m_pStream) { 1339 if (m_pStream) {
1343 m_pStream->Release(); 1340 m_pStream->Release();
1344 m_pStream = NULL; 1341 m_pStream = nullptr;
1345 } 1342 }
1346 } 1343 }
1347 1344
1348 CXFA_DocumentParser::CXFA_DocumentParser(CXFA_FFNotify* pNotify) 1345 CXFA_DocumentParser::CXFA_DocumentParser(CXFA_FFNotify* pNotify)
1349 : m_nodeParser(NULL, TRUE), m_pNotify(pNotify), m_pDocument(NULL) {} 1346 : m_nodeParser(NULL, TRUE), m_pNotify(pNotify), m_pDocument(NULL) {}
1350 CXFA_DocumentParser::~CXFA_DocumentParser() { 1347 CXFA_DocumentParser::~CXFA_DocumentParser() {
1351 CloseParser(); 1348 CloseParser();
1352 } 1349 }
1353 int32_t CXFA_DocumentParser::StartParse(IFX_FileRead* pStream, 1350 int32_t CXFA_DocumentParser::StartParse(IFX_FileRead* pStream,
1354 XFA_XDPPACKET ePacketID) { 1351 XFA_XDPPACKET ePacketID) {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1403 m_dwCurrentCheckStatus(0), 1400 m_dwCurrentCheckStatus(0),
1404 m_pRoot(pRoot), 1401 m_pRoot(pRoot),
1405 m_pStream(pStream), 1402 m_pStream(pStream),
1406 m_pParser(nullptr), 1403 m_pParser(nullptr),
1407 m_pParent(pRoot), 1404 m_pParent(pRoot),
1408 m_pChild(nullptr), 1405 m_pChild(nullptr),
1409 m_NodeStack(16), 1406 m_NodeStack(16),
1410 m_syntaxParserResult(FDE_XmlSyntaxResult::None) { 1407 m_syntaxParserResult(FDE_XmlSyntaxResult::None) {
1411 ASSERT(m_pParent && m_pStream); 1408 ASSERT(m_pParent && m_pStream);
1412 m_NodeStack.Push(m_pParent); 1409 m_NodeStack.Push(m_pParent);
1413 m_pParser = new CFDE_XMLSyntaxParser; 1410 m_pParser.reset(new CFDE_XMLSyntaxParser);
1414 m_pParser->Init(m_pStream, 32 * 1024, 1024 * 1024); 1411 m_pParser->Init(m_pStream, 32 * 1024, 1024 * 1024);
1415 } 1412 }
1413
1416 CXFA_XMLParser::~CXFA_XMLParser() { 1414 CXFA_XMLParser::~CXFA_XMLParser() {
1417 if (m_pParser) {
1418 m_pParser->Release();
1419 }
1420 m_NodeStack.RemoveAll(); 1415 m_NodeStack.RemoveAll();
1421 m_ws1.clear(); 1416 m_ws1.clear();
1422 m_ws2.clear(); 1417 m_ws2.clear();
1423 } 1418 }
1419
1424 int32_t CXFA_XMLParser::DoParser(IFX_Pause* pPause) { 1420 int32_t CXFA_XMLParser::DoParser(IFX_Pause* pPause) {
1425 if (m_syntaxParserResult == FDE_XmlSyntaxResult::Error) 1421 if (m_syntaxParserResult == FDE_XmlSyntaxResult::Error)
1426 return -1; 1422 return -1;
1427 if (m_syntaxParserResult == FDE_XmlSyntaxResult::EndOfString) 1423 if (m_syntaxParserResult == FDE_XmlSyntaxResult::EndOfString)
1428 return 100; 1424 return 100;
1429 1425
1430 int32_t iCount = 0; 1426 int32_t iCount = 0;
1431 while (TRUE) { 1427 while (TRUE) {
1432 m_syntaxParserResult = m_pParser->DoSyntaxParse(); 1428 m_syntaxParserResult = m_pParser->DoSyntaxParse();
1433 switch (m_syntaxParserResult) { 1429 switch (m_syntaxParserResult) {
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
1556 } 1552 }
1557 if (pPause && iCount > 500 && pPause->NeedToPauseNow()) { 1553 if (pPause && iCount > 500 && pPause->NeedToPauseNow()) {
1558 break; 1554 break;
1559 } 1555 }
1560 } 1556 }
1561 return (m_syntaxParserResult == FDE_XmlSyntaxResult::Error || 1557 return (m_syntaxParserResult == FDE_XmlSyntaxResult::Error ||
1562 m_NodeStack.GetSize() != 1) 1558 m_NodeStack.GetSize() != 1)
1563 ? -1 1559 ? -1
1564 : m_pParser->GetStatus(); 1560 : m_pParser->GetStatus();
1565 } 1561 }
OLDNEW
« no previous file with comments | « xfa/fxfa/parser/xfa_parser_imp.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698