Chromium Code Reviews| Index: Source/core/dom/MutationObserverRegistration.cpp |
| diff --git a/Source/core/dom/MutationObserverRegistration.cpp b/Source/core/dom/MutationObserverRegistration.cpp |
| index 2680bb73b6601eb2e57e356936c800d56c623464..b8098a260b951629a3f5801f5d5aace6e5525b46 100644 |
| --- a/Source/core/dom/MutationObserverRegistration.cpp |
| +++ b/Source/core/dom/MutationObserverRegistration.cpp |
| @@ -37,9 +37,9 @@ |
| namespace WebCore { |
| -PassOwnPtr<MutationObserverRegistration> MutationObserverRegistration::create(MutationObserver& observer, Node& registrationNode, MutationObserverOptions options, const HashSet<AtomicString>& attributeFilter) |
| +PassOwnPtrWillBeRawPtr<MutationObserverRegistration> MutationObserverRegistration::create(MutationObserver& observer, Node& registrationNode, MutationObserverOptions options, const HashSet<AtomicString>& attributeFilter) |
| { |
| - return adoptPtr(new MutationObserverRegistration(observer, registrationNode, options, attributeFilter)); |
| + return adoptPtrWillBeNoop(new MutationObserverRegistration(observer, registrationNode, options, attributeFilter)); |
| } |
| MutationObserverRegistration::MutationObserverRegistration(MutationObserver& observer, Node& registrationNode, MutationObserverOptions options, const HashSet<AtomicString>& attributeFilter) |
| @@ -53,8 +53,20 @@ MutationObserverRegistration::MutationObserverRegistration(MutationObserver& obs |
| MutationObserverRegistration::~MutationObserverRegistration() |
| { |
| +#if ENABLE(OILPAN) |
| + // dispose() will not have been called if this assert |
| + // triggers. |
| + ASSERT(!m_observer); |
| +#else |
| + dispose(); |
| +#endif |
|
haraken
2014/04/21 06:00:34
As I commented previously, would it be possible to
sof
2014/04/21 07:34:05
I can remove it, but why is the assert harmful to
haraken
2014/04/21 07:41:31
I'm not concerned about having the assert. My poin
sof
2014/04/21 12:45:16
ok, I've switched to explicit dispose()s for the n
|
| +} |
| + |
| +void MutationObserverRegistration::dispose() |
| +{ |
| clearTransientRegistrations(); |
| m_observer->observationEnded(this); |
| + m_observer.clear(); |
|
haraken
2014/04/21 06:00:34
Shall we also clear m_registrationNode in dispose(
sof
2014/04/21 12:45:16
m_registrationNode was left as a reference, as tha
|
| } |
| void MutationObserverRegistration::resetObservation(MutationObserverOptions options, const HashSet<AtomicString>& attributeFilter) |
| @@ -130,4 +142,9 @@ void MutationObserverRegistration::addRegistrationNodesToSet(HashSet<Node*>& nod |
| nodes.add(iter->get()); |
| } |
| +void MutationObserverRegistration::trace(Visitor* visitor) |
| +{ |
| + visitor->trace(m_observer); |
| +} |
| + |
| } // namespace WebCore |