Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008, 2010 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2008 David Smith <catfish.man@gmail.com> | 3 * Copyright (C) 2008 David Smith <catfish.man@gmail.com> |
| 4 * | 4 * |
| 5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
| 6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
| 7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
| 8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
| 9 * | 9 * |
| 10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 32 #include "wtf/text/StringHash.h" | 32 #include "wtf/text/StringHash.h" |
| 33 | 33 |
| 34 namespace blink { | 34 namespace blink { |
| 35 | 35 |
| 36 class NodeListsNodeData FINAL : public NoBaseWillBeGarbageCollectedFinalized<Nod eListsNodeData> { | 36 class NodeListsNodeData FINAL : public NoBaseWillBeGarbageCollectedFinalized<Nod eListsNodeData> { |
| 37 WTF_MAKE_NONCOPYABLE(NodeListsNodeData); | 37 WTF_MAKE_NONCOPYABLE(NodeListsNodeData); |
| 38 WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; | 38 WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; |
| 39 public: | 39 public: |
| 40 void clearChildNodeListCache() | 40 void clearChildNodeListCache() |
| 41 { | 41 { |
| 42 if (m_childNodeList && m_childNodeList->isChildNodeList()) | 42 if (m_childNodeList) { |
| 43 // This can only be called from ContainerNode so casting to ChildNod eList | |
|
adamk
2014/07/24 22:06:20
This seems a bit unsafe, since there's nothing (ex
Inactive
2014/07/25 00:09:50
Yes, there is an assertion in the casting function
| |
| 44 // is safe. | |
| 43 toChildNodeList(m_childNodeList)->invalidateCache(); | 45 toChildNodeList(m_childNodeList)->invalidateCache(); |
| 46 } | |
| 44 } | 47 } |
| 45 | 48 |
| 46 PassRefPtrWillBeRawPtr<ChildNodeList> ensureChildNodeList(ContainerNode& nod e) | 49 PassRefPtrWillBeRawPtr<ChildNodeList> ensureChildNodeList(ContainerNode& nod e) |
| 47 { | 50 { |
| 48 if (m_childNodeList) | 51 if (m_childNodeList) |
| 49 return toChildNodeList(m_childNodeList); | 52 return toChildNodeList(m_childNodeList); |
| 50 RefPtrWillBeRawPtr<ChildNodeList> list = ChildNodeList::create(node); | 53 RefPtrWillBeRawPtr<ChildNodeList> list = ChildNodeList::create(node); |
| 51 m_childNodeList = list.get(); | 54 m_childNodeList = list.get(); |
| 52 return list.release(); | 55 return list.release(); |
| 53 } | 56 } |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 232 if ((m_childNodeList ? 1 : 0) + m_atomicNameCaches.size() + m_tagCollectionC acheNS.size() != 1) | 235 if ((m_childNodeList ? 1 : 0) + m_atomicNameCaches.size() + m_tagCollectionC acheNS.size() != 1) |
| 233 return false; | 236 return false; |
| 234 ownerNode.clearNodeLists(); | 237 ownerNode.clearNodeLists(); |
| 235 return true; | 238 return true; |
| 236 } | 239 } |
| 237 #endif | 240 #endif |
| 238 | 241 |
| 239 } // namespace blink | 242 } // namespace blink |
| 240 | 243 |
| 241 #endif // NodeListsNodeData_h | 244 #endif // NodeListsNodeData_h |
| OLD | NEW |