Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(444)

Unified Diff: Source/core/dom/MutationObserverRegistration.h

Issue 265793017: Oilpan: move node/element rare data objects to the heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Implement a weak-like Node reference from a MO registration object Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/dom/MutationObserverRegistration.h
diff --git a/Source/core/dom/MutationObserverRegistration.h b/Source/core/dom/MutationObserverRegistration.h
index 7668c09b115c78a31a385dd3a26cf3a0bc468d6c..97d832be1e0052b5e2a3f04d4a31cb61d11d8e29 100644
--- a/Source/core/dom/MutationObserverRegistration.h
+++ b/Source/core/dom/MutationObserverRegistration.h
@@ -43,7 +43,7 @@ class QualifiedName;
class MutationObserverRegistration FINAL : public NoBaseWillBeGarbageCollectedFinalized<MutationObserverRegistration> {
public:
- static PassOwnPtrWillBeRawPtr<MutationObserverRegistration> create(MutationObserver&, Node&, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
+ static PassOwnPtrWillBeRawPtr<MutationObserverRegistration> create(MutationObserver&, Node*, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
~MutationObserverRegistration();
void resetObservation(MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
@@ -62,15 +62,22 @@ public:
void addRegistrationNodesToSet(HashSet<Node*>&) const;
void trace(Visitor*);
+#if ENABLE(OILPAN)
+ void clearWeakMembers(Visitor*);
+#endif
void dispose();
private:
- MutationObserverRegistration(MutationObserver&, Node&, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
+ MutationObserverRegistration(MutationObserver&, Node*, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter);
RefPtrWillBeMember<MutationObserver> m_observer;
- Node& m_registrationNode;
+ RawPtrWillBeMember<Node> m_registrationNode;
+#if ENABLE(OILPAN)
+ bool m_keepAlive;
+#else
RefPtr<Node> m_registrationNodeKeepAlive;
+#endif
typedef HashSet<RefPtr<Node> > NodeHashSet;
OwnPtr<NodeHashSet> m_transientRegistrationNodes;

Powered by Google App Engine
This is Rietveld 408576698