| 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 |