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

Side by Side Diff: xfa/fde/xml/fde_xml_imp.h

Issue 2555373002: Use unique_ptr for CXFA_XMLParser. (Closed)
Patch Set: Alphabetize class Created 4 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
« no previous file with comments | « testing/libfuzzer/pdf_xml_fuzzer.cc ('k') | xfa/fde/xml/fde_xml_imp.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 #ifndef XFA_FDE_XML_FDE_XML_IMP_H_ 7 #ifndef XFA_FDE_XML_FDE_XML_IMP_H_
8 #define XFA_FDE_XML_FDE_XML_IMP_H_ 8 #define XFA_FDE_XML_FDE_XML_IMP_H_
9 9
10 #include <memory>
11
10 #include "core/fxcrt/fx_system.h" 12 #include "core/fxcrt/fx_system.h"
11 #include "xfa/fde/xml/fde_xml.h" 13 #include "xfa/fde/xml/fde_xml.h"
12 #include "xfa/fgas/crt/fgas_memory.h" 14 #include "xfa/fgas/crt/fgas_memory.h"
13 #include "xfa/fgas/crt/fgas_stream.h" 15 #include "xfa/fgas/crt/fgas_stream.h"
14 #include "xfa/fgas/crt/fgas_utils.h" 16 #include "xfa/fgas/crt/fgas_utils.h"
15 17
16 class CFDE_BlockBuffer; 18 class CFDE_BlockBuffer;
17 class CFDE_XMLInstruction; 19 class CFDE_XMLInstruction;
18 class CFDE_XMLElement; 20 class CFDE_XMLElement;
19 class CFDE_XMLText; 21 class CFDE_XMLText;
20 class CFDE_XMLDoc; 22 class CFDE_XMLDoc;
21 class CFDE_XMLDOMParser; 23 class CFDE_XMLDOMParser;
22 class CFDE_XMLParser;
23 class CFDE_XMLSyntaxParser; 24 class CFDE_XMLSyntaxParser;
25 class IFDE_XMLParser;
24 26
25 class CFDE_XMLNode : public CFX_Target { 27 class CFDE_XMLNode : public CFX_Target {
26 public: 28 public:
27 enum NodeItem { 29 enum NodeItem {
28 Root = 0, 30 Root = 0,
29 Parent, 31 Parent,
30 FirstSibling, 32 FirstSibling,
31 PriorSibling, 33 PriorSibling,
32 NextSibling, 34 NextSibling,
33 LastSibling, 35 LastSibling,
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 void SetCharData(const CFX_WideString& wsCData) { m_wsCharData = wsCData; } 188 void SetCharData(const CFX_WideString& wsCData) { m_wsCharData = wsCData; }
187 189
188 CFX_WideString m_wsCharData; 190 CFX_WideString m_wsCharData;
189 }; 191 };
190 192
191 class CFDE_XMLDoc : public CFX_Target { 193 class CFDE_XMLDoc : public CFX_Target {
192 public: 194 public:
193 CFDE_XMLDoc(); 195 CFDE_XMLDoc();
194 ~CFDE_XMLDoc() override; 196 ~CFDE_XMLDoc() override;
195 197
196 bool LoadXML(CFDE_XMLParser* pXMLParser); 198 bool LoadXML(std::unique_ptr<IFDE_XMLParser> pXMLParser);
197 int32_t DoLoad(IFX_Pause* pPause = nullptr); 199 int32_t DoLoad(IFX_Pause* pPause = nullptr);
198 void CloseXML(); 200 void CloseXML();
199 CFDE_XMLNode* GetRoot() const { return m_pRoot; } 201 CFDE_XMLNode* GetRoot() const { return m_pRoot; }
200 void SaveXML(CFX_RetainPtr<IFGAS_Stream>& pXMLStream, bool bSaveBOM = true); 202 void SaveXML(CFX_RetainPtr<IFGAS_Stream>& pXMLStream, bool bSaveBOM = true);
201 void SaveXMLNode(const CFX_RetainPtr<IFGAS_Stream>& pXMLStream, 203 void SaveXMLNode(const CFX_RetainPtr<IFGAS_Stream>& pXMLStream,
202 CFDE_XMLNode* pNode); 204 CFDE_XMLNode* pNode);
203 205
204 protected: 206 protected:
205 void Reset(bool bInitRoot); 207 void Reset(bool bInitRoot);
206 void ReleaseParser(); 208 void ReleaseParser();
207 209
208 CFX_RetainPtr<IFGAS_Stream> m_pStream; 210 CFX_RetainPtr<IFGAS_Stream> m_pStream;
209 int32_t m_iStatus; 211 int32_t m_iStatus;
210 CFDE_XMLNode* m_pRoot; 212 CFDE_XMLNode* m_pRoot;
211 CFDE_XMLSyntaxParser* m_pSyntaxParser; 213 CFDE_XMLSyntaxParser* m_pSyntaxParser;
212 CFDE_XMLParser* m_pXMLParser; 214 std::unique_ptr<IFDE_XMLParser> m_pXMLParser;
213 }; 215 };
214 216
215 class CFDE_XMLParser { 217 class IFDE_XMLParser {
216 public: 218 public:
217 virtual ~CFDE_XMLParser() {} 219 virtual ~IFDE_XMLParser() {}
218
219 virtual void Release() = 0;
220 virtual int32_t DoParser(IFX_Pause* pPause) = 0; 220 virtual int32_t DoParser(IFX_Pause* pPause) = 0;
221 }; 221 };
222 222
223 class CFDE_BlockBuffer : public CFX_Target { 223 class CFDE_BlockBuffer : public CFX_Target {
224 public: 224 public:
225 explicit CFDE_BlockBuffer(int32_t iAllocStep = 1024 * 1024); 225 explicit CFDE_BlockBuffer(int32_t iAllocStep = 1024 * 1024);
226 ~CFDE_BlockBuffer() override; 226 ~CFDE_BlockBuffer() override;
227 227
228 bool InitBuffer(int32_t iBufferSize = 1024 * 1024); 228 bool InitBuffer(int32_t iBufferSize = 1024 * 1024);
229 bool IsInitialized() { return m_iBufferSize / m_iAllocStep >= 1; } 229 bool IsInitialized() { return m_iBufferSize / m_iAllocStep >= 1; }
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 int32_t m_iTextDataLength; 343 int32_t m_iTextDataLength;
344 FDE_XmlSyntaxResult m_syntaxParserResult; 344 FDE_XmlSyntaxResult m_syntaxParserResult;
345 FDE_XmlSyntaxState m_syntaxParserState; 345 FDE_XmlSyntaxState m_syntaxParserState;
346 FX_WCHAR m_wQuotationMark; 346 FX_WCHAR m_wQuotationMark;
347 int32_t m_iEntityStart; 347 int32_t m_iEntityStart;
348 CFX_StackTemplate<uint32_t> m_SkipStack; 348 CFX_StackTemplate<uint32_t> m_SkipStack;
349 FX_WCHAR m_SkipChar; 349 FX_WCHAR m_SkipChar;
350 }; 350 };
351 351
352 #endif // XFA_FDE_XML_FDE_XML_IMP_H_ 352 #endif // XFA_FDE_XML_FDE_XML_IMP_H_
OLDNEW
« no previous file with comments | « testing/libfuzzer/pdf_xml_fuzzer.cc ('k') | xfa/fde/xml/fde_xml_imp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698