OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009, 2010 Apple Inc. All rights reserved. |
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 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 10 matching lines...) Expand all Loading... |
21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 */ | 27 */ |
28 | 28 |
29 #include "core/dom/AXObjectCache.h" | 29 #include "core/dom/AXObjectCache.h" |
30 | 30 |
31 #include "wtf/PtrUtil.h" | |
32 #include <memory> | |
33 | |
34 namespace blink { | 31 namespace blink { |
35 | 32 |
36 AXObjectCache::AXObjectCacheCreateFunction AXObjectCache::m_createFunction = nul
lptr; | 33 AXObjectCache::AXObjectCacheCreateFunction AXObjectCache::m_createFunction = nul
lptr; |
37 | 34 |
38 void AXObjectCache::init(AXObjectCacheCreateFunction function) | 35 void AXObjectCache::init(AXObjectCacheCreateFunction function) |
39 { | 36 { |
40 DCHECK(!m_createFunction); | 37 DCHECK(!m_createFunction); |
41 m_createFunction = function; | 38 m_createFunction = function; |
42 } | 39 } |
43 | 40 |
44 AXObjectCache* AXObjectCache::create(Document& document) | 41 AXObjectCache* AXObjectCache::create(Document& document) |
45 { | 42 { |
46 DCHECK(m_createFunction); | 43 DCHECK(m_createFunction); |
47 return m_createFunction(document); | 44 return m_createFunction(document); |
48 } | 45 } |
49 | 46 |
50 AXObjectCache::AXObjectCache() | 47 AXObjectCache::AXObjectCache() |
51 { | 48 { |
52 } | 49 } |
53 | 50 |
54 AXObjectCache::~AXObjectCache() | 51 AXObjectCache::~AXObjectCache() |
55 { | 52 { |
56 } | 53 } |
57 | 54 |
58 std::unique_ptr<ScopedAXObjectCache> ScopedAXObjectCache::create(Document& docum
ent) | 55 PassOwnPtr<ScopedAXObjectCache> ScopedAXObjectCache::create(Document& document) |
59 { | 56 { |
60 return wrapUnique(new ScopedAXObjectCache(document)); | 57 return adoptPtr(new ScopedAXObjectCache(document)); |
61 } | 58 } |
62 | 59 |
63 ScopedAXObjectCache::ScopedAXObjectCache(Document& document) | 60 ScopedAXObjectCache::ScopedAXObjectCache(Document& document) |
64 : m_document(&document) | 61 : m_document(&document) |
65 { | 62 { |
66 if (!m_document->axObjectCache()) | 63 if (!m_document->axObjectCache()) |
67 m_cache = AXObjectCache::create(*m_document); | 64 m_cache = AXObjectCache::create(*m_document); |
68 } | 65 } |
69 | 66 |
70 ScopedAXObjectCache::~ScopedAXObjectCache() | 67 ScopedAXObjectCache::~ScopedAXObjectCache() |
71 { | 68 { |
72 if (m_cache) | 69 if (m_cache) |
73 m_cache->dispose(); | 70 m_cache->dispose(); |
74 } | 71 } |
75 | 72 |
76 AXObjectCache* ScopedAXObjectCache::get() | 73 AXObjectCache* ScopedAXObjectCache::get() |
77 { | 74 { |
78 if (m_cache) | 75 if (m_cache) |
79 return m_cache.get(); | 76 return m_cache.get(); |
80 AXObjectCache* cache = m_document->axObjectCache(); | 77 AXObjectCache* cache = m_document->axObjectCache(); |
81 DCHECK(cache); | 78 DCHECK(cache); |
82 return cache; | 79 return cache; |
83 } | 80 } |
84 | 81 |
85 } // namespace blink | 82 } // namespace blink |
OLD | NEW |