OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 | 74 |
75 void MutationObserverRegistration::observedSubtreeNodeWillDetach(Node& node) | 75 void MutationObserverRegistration::observedSubtreeNodeWillDetach(Node& node) |
76 { | 76 { |
77 if (!isSubtree()) | 77 if (!isSubtree()) |
78 return; | 78 return; |
79 | 79 |
80 node.registerTransientMutationObserver(this); | 80 node.registerTransientMutationObserver(this); |
81 m_observer->setHasTransientRegistration(); | 81 m_observer->setHasTransientRegistration(); |
82 | 82 |
83 if (!m_transientRegistrationNodes) { | 83 if (!m_transientRegistrationNodes) { |
84 m_transientRegistrationNodes = adoptPtr(new NodeHashSet); | 84 m_transientRegistrationNodes = adoptPtrWillBeNoop(new NodeHashSet); |
85 | 85 |
86 ASSERT(m_registrationNode); | 86 ASSERT(m_registrationNode); |
87 ASSERT(!m_registrationNodeKeepAlive); | 87 ASSERT(!m_registrationNodeKeepAlive); |
88 m_registrationNodeKeepAlive = PassRefPtrWillBeRawPtr<Node>(m_registratio
nNode.get()); // Balanced in clearTransientRegistrations. | 88 m_registrationNodeKeepAlive = PassRefPtrWillBeRawPtr<Node>(m_registratio
nNode.get()); // Balanced in clearTransientRegistrations. |
89 } | 89 } |
90 m_transientRegistrationNodes->add(&node); | 90 m_transientRegistrationNodes->add(&node); |
91 } | 91 } |
92 | 92 |
93 void MutationObserverRegistration::clearTransientRegistrations() | 93 void MutationObserverRegistration::clearTransientRegistrations() |
94 { | 94 { |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 return; | 139 return; |
140 for (NodeHashSet::const_iterator iter = m_transientRegistrationNodes->begin(
); iter != m_transientRegistrationNodes->end(); ++iter) | 140 for (NodeHashSet::const_iterator iter = m_transientRegistrationNodes->begin(
); iter != m_transientRegistrationNodes->end(); ++iter) |
141 nodes.add(iter->get()); | 141 nodes.add(iter->get()); |
142 } | 142 } |
143 | 143 |
144 void MutationObserverRegistration::trace(Visitor* visitor) | 144 void MutationObserverRegistration::trace(Visitor* visitor) |
145 { | 145 { |
146 visitor->trace(m_observer); | 146 visitor->trace(m_observer); |
147 visitor->trace(m_registrationNode); | 147 visitor->trace(m_registrationNode); |
148 visitor->trace(m_registrationNodeKeepAlive); | 148 visitor->trace(m_registrationNodeKeepAlive); |
| 149 #if ENABLE(OILPAN) |
| 150 visitor->trace(m_transientRegistrationNodes); |
| 151 #endif |
149 } | 152 } |
150 | 153 |
151 } // namespace WebCore | 154 } // namespace WebCore |
OLD | NEW |