Chromium Code Reviews| Index: Source/core/dom/AXObjectCache.cpp |
| diff --git a/Source/core/dom/AXObjectCache.cpp b/Source/core/dom/AXObjectCache.cpp |
| index d9e64928a742bd192e0877b4ca151e9e930461d7..484efe7dc3a3296665dbef88d5ff91d28178e10e 100644 |
| --- a/Source/core/dom/AXObjectCache.cpp |
| +++ b/Source/core/dom/AXObjectCache.cpp |
| @@ -40,4 +40,35 @@ AXObjectCache::~AXObjectCache() |
| { |
| } |
| +ScopedAXObjectCache::ScopedAXObjectCache(Document& document) |
| + : m_document(document) |
| + , m_cache(0) |
| +{ |
| + if (AXObjectCache* existingCache = document.axObjectCache()) { |
| + m_cache = existingCache; |
| + m_isScoped = false; |
| + } else { |
| + m_isScoped = true; |
| + } |
| +} |
| + |
| +ScopedAXObjectCache::~ScopedAXObjectCache() |
| +{ |
| + if (m_isScoped) |
| + delete m_cache; |
| +} |
| + |
| +AXObjectCache* ScopedAXObjectCache::get() |
| +{ |
| + if (!m_cache && m_isScoped) |
| + m_cache = AXObjectCache::create(m_document); |
|
adamk
2014/12/17 17:47:00
Nit: might as well do this in the constructor, the
aboxhall
2014/12/18 04:34:47
Done.
|
| + ASSERT(m_cache); |
| + return m_cache; |
| +} |
| + |
| +AXObjectCache* ScopedAXObjectCache::operator->() |
| +{ |
| + return get(); |
| +} |
| + |
| } // namespace blink |