OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google, Inc. | 2 * Copyright (C) 2013 Google, Inc. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 28 matching lines...) Expand all Loading... |
39 DocumentXPathEvaluator& DocumentXPathEvaluator::from(WillBeHeapSupplementable<Do
cument>& document) | 39 DocumentXPathEvaluator& DocumentXPathEvaluator::from(WillBeHeapSupplementable<Do
cument>& document) |
40 { | 40 { |
41 DocumentXPathEvaluator* cache = static_cast<DocumentXPathEvaluator*>(WillBeH
eapSupplement<Document>::from(document, supplementName())); | 41 DocumentXPathEvaluator* cache = static_cast<DocumentXPathEvaluator*>(WillBeH
eapSupplement<Document>::from(document, supplementName())); |
42 if (!cache) { | 42 if (!cache) { |
43 cache = new DocumentXPathEvaluator(); | 43 cache = new DocumentXPathEvaluator(); |
44 WillBeHeapSupplement<Document>::provideTo(document, supplementName(), ad
optPtrWillBeNoop(cache)); | 44 WillBeHeapSupplement<Document>::provideTo(document, supplementName(), ad
optPtrWillBeNoop(cache)); |
45 } | 45 } |
46 return *cache; | 46 return *cache; |
47 } | 47 } |
48 | 48 |
49 PassRefPtrWillBeRawPtr<XPathExpression> DocumentXPathEvaluator::createExpression
(WillBeHeapSupplementable<Document>& document, | 49 XPathExpression* DocumentXPathEvaluator::createExpression(WillBeHeapSupplementab
le<Document>& document, const String& expression, XPathNSResolver* resolver, Exc
eptionState& exceptionState) |
50 const String& expression, PassRefPtrWillBeRawPtr<XPathNSResolver> resolver,
ExceptionState& exceptionState) | |
51 { | 50 { |
52 DocumentXPathEvaluator& suplement = from(document); | 51 DocumentXPathEvaluator& suplement = from(document); |
53 if (!suplement.m_xpathEvaluator) | 52 if (!suplement.m_xpathEvaluator) |
54 suplement.m_xpathEvaluator = XPathEvaluator::create(); | 53 suplement.m_xpathEvaluator = XPathEvaluator::create(); |
55 return suplement.m_xpathEvaluator->createExpression(expression, resolver, ex
ceptionState); | 54 return suplement.m_xpathEvaluator->createExpression(expression, resolver, ex
ceptionState); |
56 } | 55 } |
57 | 56 |
58 PassRefPtrWillBeRawPtr<XPathNSResolver> DocumentXPathEvaluator::createNSResolver
(WillBeHeapSupplementable<Document>& document, Node* nodeResolver) | 57 XPathNSResolver* DocumentXPathEvaluator::createNSResolver(WillBeHeapSupplementab
le<Document>& document, Node* nodeResolver) |
59 { | 58 { |
60 DocumentXPathEvaluator& suplement = from(document); | 59 DocumentXPathEvaluator& suplement = from(document); |
61 if (!suplement.m_xpathEvaluator) | 60 if (!suplement.m_xpathEvaluator) |
62 suplement.m_xpathEvaluator = XPathEvaluator::create(); | 61 suplement.m_xpathEvaluator = XPathEvaluator::create(); |
63 return suplement.m_xpathEvaluator->createNSResolver(nodeResolver); | 62 return suplement.m_xpathEvaluator->createNSResolver(nodeResolver); |
64 } | 63 } |
65 | 64 |
66 PassRefPtrWillBeRawPtr<XPathResult> DocumentXPathEvaluator::evaluate(WillBeHeapS
upplementable<Document>& document, const String& expression, | 65 XPathResult* DocumentXPathEvaluator::evaluate(WillBeHeapSupplementable<Document>
& document, const String& expression, |
67 Node* contextNode, PassRefPtrWillBeRawPtr<XPathNSResolver> resolver, unsigne
d short type, | 66 Node* contextNode, XPathNSResolver* resolver, unsigned short type, |
68 const ScriptValue&, ExceptionState& exceptionState) | 67 const ScriptValue&, ExceptionState& exceptionState) |
69 { | 68 { |
70 DocumentXPathEvaluator& suplement = from(document); | 69 DocumentXPathEvaluator& suplement = from(document); |
71 if (!suplement.m_xpathEvaluator) | 70 if (!suplement.m_xpathEvaluator) |
72 suplement.m_xpathEvaluator = XPathEvaluator::create(); | 71 suplement.m_xpathEvaluator = XPathEvaluator::create(); |
73 return suplement.m_xpathEvaluator->evaluate(expression, contextNode, resolve
r, type, ScriptValue(), exceptionState); | 72 return suplement.m_xpathEvaluator->evaluate(expression, contextNode, resolve
r, type, ScriptValue(), exceptionState); |
74 } | 73 } |
75 | 74 |
76 DEFINE_TRACE(DocumentXPathEvaluator) | 75 DEFINE_TRACE(DocumentXPathEvaluator) |
77 { | 76 { |
78 visitor->trace(m_xpathEvaluator); | 77 visitor->trace(m_xpathEvaluator); |
79 WillBeHeapSupplement<Document>::trace(visitor); | 78 WillBeHeapSupplement<Document>::trace(visitor); |
80 } | 79 } |
81 | 80 |
82 } // namespace blink | 81 } // namespace blink |
OLD | NEW |