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

Side by Side Diff: Source/core/xml/XPathParser.h

Issue 1099613003: Oilpan: have xml/ objects on the heap by default. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 8 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 /* 1 /*
2 * Copyright 2005 Maksim Orlovich <maksim@kde.org> 2 * Copyright 2005 Maksim Orlovich <maksim@kde.org>
3 * Copyright (C) 2006 Apple Computer, Inc. 3 * Copyright (C) 2006 Apple Computer, Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 class Parser { 60 class Parser {
61 WTF_MAKE_NONCOPYABLE(Parser); 61 WTF_MAKE_NONCOPYABLE(Parser);
62 STACK_ALLOCATED(); 62 STACK_ALLOCATED();
63 public: 63 public:
64 Parser(); 64 Parser();
65 ~Parser(); 65 ~Parser();
66 66
67 XPathNSResolver* resolver() const { return m_resolver.get(); } 67 XPathNSResolver* resolver() const { return m_resolver.get(); }
68 bool expandQName(const String& qName, AtomicString& localName, AtomicString& namespaceURI); 68 bool expandQName(const String& qName, AtomicString& localName, AtomicString& namespaceURI);
69 69
70 PassOwnPtrWillBeRawPtr<Expression> parseStatement(const String& statement, P assRefPtrWillBeRawPtr<XPathNSResolver>, ExceptionState&); 70 Expression* parseStatement(const String& statement, XPathNSResolver*, Except ionState&);
71 71
72 static Parser* current() { return currentParser; } 72 static Parser* current() { return currentParser; }
73 73
74 int lex(void* yylval); 74 int lex(void* yylval);
75 75
76 RawPtrWillBeMember<Expression> m_topExpr; 76 Member<Expression> m_topExpr;
77 bool m_gotNamespaceError; 77 bool m_gotNamespaceError;
78 78
79 void registerParseNode(ParseNode*);
80 void unregisterParseNode(ParseNode*);
81
82 void registerPredicateVector(WillBeHeapVector<OwnPtrWillBeMember<Predicate>> *);
83 void deletePredicateVector(WillBeHeapVector<OwnPtrWillBeMember<Predicate>>*) ;
84
85 void registerExpressionVector(WillBeHeapVector<OwnPtrWillBeMember<Expression >>*);
86 void deleteExpressionVector(WillBeHeapVector<OwnPtrWillBeMember<Expression>> *);
87
88 void registerString(String*); 79 void registerString(String*);
89 void deleteString(String*); 80 void deleteString(String*);
90 81
91 void registerNodeTest(Step::NodeTest*);
92 void deleteNodeTest(Step::NodeTest*);
haraken 2015/04/26 15:36:23 Nit: You could explain these removals in the CL de
sof 2015/04/26 15:41:26 Will do, the switch to Oilpan allows letting go of
93
94 private: 82 private:
95 bool isBinaryOperatorContext() const; 83 bool isBinaryOperatorContext() const;
96 84
97 void skipWS(); 85 void skipWS();
98 Token makeTokenAndAdvance(int type, int advance = 1); 86 Token makeTokenAndAdvance(int type, int advance = 1);
99 Token makeTokenAndAdvance(int type, NumericOp::Opcode, int advance = 1); 87 Token makeTokenAndAdvance(int type, NumericOp::Opcode, int advance = 1);
100 Token makeTokenAndAdvance(int type, EqTestOp::Opcode, int advance = 1); 88 Token makeTokenAndAdvance(int type, EqTestOp::Opcode, int advance = 1);
101 char peekAheadHelper(); 89 char peekAheadHelper();
102 char peekCurHelper(); 90 char peekCurHelper();
103 91
104 Token lexString(); 92 Token lexString();
105 Token lexNumber(); 93 Token lexNumber();
106 bool lexNCName(String&); 94 bool lexNCName(String&);
107 bool lexQName(String&); 95 bool lexQName(String&);
108 96
109 Token nextToken(); 97 Token nextToken();
110 Token nextTokenInternal(); 98 Token nextTokenInternal();
111 99
112 void reset(const String& data); 100 void reset(const String& data);
113 101
114 static Parser* currentParser; 102 static Parser* currentParser;
115 103
116 unsigned m_nextPos; 104 unsigned m_nextPos;
117 String m_data; 105 String m_data;
118 int m_lastTokenType; 106 int m_lastTokenType;
119 RefPtrWillBeMember<XPathNSResolver> m_resolver; 107 Member<XPathNSResolver> m_resolver;
120 108
121 #if !ENABLE(OILPAN)
122 HashSet<ParseNode*> m_parseNodes;
123 HashSet<Vector<OwnPtr<Predicate>>*> m_predicateVectors;
124 HashSet<Vector<OwnPtr<Expression>>*> m_expressionVectors;
125 HashSet<OwnPtr<Step::NodeTest>> m_nodeTests;
126 #endif
127 HashSet<OwnPtr<String>> m_strings; 109 HashSet<OwnPtr<String>> m_strings;
128 }; 110 };
129 111
130 } // namespace XPath 112 } // namespace XPath
131 113
132 } // namespace blink 114 } // namespace blink
133 115
134 int xpathyyparse(blink::XPath::Parser*); 116 int xpathyyparse(blink::XPath::Parser*);
135 #endif 117 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698