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

Side by Side Diff: Source/core/xml/XPathExpressionNode.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: simplify XPathResult dtor Created 5 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 | « Source/core/xml/XPathExpression.idl ('k') | Source/core/xml/XPathFunctions.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2005 Frerich Raabe <raabe@kde.org> 2 * Copyright (C) 2005 Frerich Raabe <raabe@kde.org>
3 * Copyright (C) 2006, 2009 Apple Inc. 3 * Copyright (C) 2006, 2009 Apple 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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 explicit EvaluationContext(Node&); 43 explicit EvaluationContext(Node&);
44 44
45 RefPtrWillBeMember<Node> node; 45 RefPtrWillBeMember<Node> node;
46 unsigned long size; 46 unsigned long size;
47 unsigned long position; 47 unsigned long position;
48 HashMap<String, String> variableBindings; 48 HashMap<String, String> variableBindings;
49 49
50 bool hadTypeConversionError; 50 bool hadTypeConversionError;
51 }; 51 };
52 52
53 class ParseNode : public NoBaseWillBeGarbageCollectedFinalized<ParseNode> { 53 class ParseNode : public GarbageCollectedFinalized<ParseNode> {
54 public: 54 public:
55 virtual ~ParseNode() { } 55 virtual ~ParseNode() { }
56 DEFINE_INLINE_VIRTUAL_TRACE() { } 56 DEFINE_INLINE_VIRTUAL_TRACE() { }
57 }; 57 };
58 58
59 class Expression : public ParseNode { 59 class Expression : public ParseNode {
60 WTF_MAKE_NONCOPYABLE(Expression); WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED(Ex pression); 60 WTF_MAKE_NONCOPYABLE(Expression);
61 public: 61 public:
62 Expression(); 62 Expression();
63 virtual ~Expression(); 63 virtual ~Expression();
64 DECLARE_VIRTUAL_TRACE(); 64 DECLARE_VIRTUAL_TRACE();
65 65
66 virtual Value evaluate(EvaluationContext&) const = 0; 66 virtual Value evaluate(EvaluationContext&) const = 0;
67 67
68 void addSubExpression(PassOwnPtrWillBeRawPtr<Expression> expr) 68 void addSubExpression(Expression* expr)
69 { 69 {
70 m_isContextNodeSensitive |= expr->m_isContextNodeSensitive; 70 m_isContextNodeSensitive |= expr->m_isContextNodeSensitive;
71 m_isContextPositionSensitive |= expr->m_isContextPositionSensitive; 71 m_isContextPositionSensitive |= expr->m_isContextPositionSensitive;
72 m_isContextSizeSensitive |= expr->m_isContextSizeSensitive; 72 m_isContextSizeSensitive |= expr->m_isContextSizeSensitive;
73 m_subExpressions.append(expr); 73 m_subExpressions.append(expr);
74 } 74 }
75 75
76 bool isContextNodeSensitive() const { return m_isContextNodeSensitive; } 76 bool isContextNodeSensitive() const { return m_isContextNodeSensitive; }
77 bool isContextPositionSensitive() const { return m_isContextPositionSensitiv e; } 77 bool isContextPositionSensitive() const { return m_isContextPositionSensitiv e; }
78 bool isContextSizeSensitive() const { return m_isContextSizeSensitive; } 78 bool isContextSizeSensitive() const { return m_isContextSizeSensitive; }
79 void setIsContextNodeSensitive(bool value) { m_isContextNodeSensitive = valu e; } 79 void setIsContextNodeSensitive(bool value) { m_isContextNodeSensitive = valu e; }
80 void setIsContextPositionSensitive(bool value) { m_isContextPositionSensitiv e = value; } 80 void setIsContextPositionSensitive(bool value) { m_isContextPositionSensitiv e = value; }
81 void setIsContextSizeSensitive(bool value) { m_isContextSizeSensitive = valu e; } 81 void setIsContextSizeSensitive(bool value) { m_isContextSizeSensitive = valu e; }
82 82
83 virtual Value::Type resultType() const = 0; 83 virtual Value::Type resultType() const = 0;
84 84
85 protected: 85 protected:
86 unsigned subExprCount() const { return m_subExpressions.size(); } 86 unsigned subExprCount() const { return m_subExpressions.size(); }
87 Expression* subExpr(unsigned i) { return m_subExpressions[i].get(); } 87 Expression* subExpr(unsigned i) { return m_subExpressions[i].get(); }
88 const Expression* subExpr(unsigned i) const { return m_subExpressions[i].get (); } 88 const Expression* subExpr(unsigned i) const { return m_subExpressions[i].get (); }
89 89
90 private: 90 private:
91 WillBeHeapVector<OwnPtrWillBeMember<Expression>> m_subExpressions; 91 HeapVector<Member<Expression>> m_subExpressions;
92 92
93 // Evaluation details that can be used for optimization. 93 // Evaluation details that can be used for optimization.
94 bool m_isContextNodeSensitive; 94 bool m_isContextNodeSensitive;
95 bool m_isContextPositionSensitive; 95 bool m_isContextPositionSensitive;
96 bool m_isContextSizeSensitive; 96 bool m_isContextSizeSensitive;
97 }; 97 };
98 98
99 } 99 } // namespace XPath
100 100
101 } 101 } // namespace blink
102 102
103 #endif // XPathExpressionNode_h 103 #endif // XPathExpressionNode_h
OLDNEW
« no previous file with comments | « Source/core/xml/XPathExpression.idl ('k') | Source/core/xml/XPathFunctions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698