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

Unified Diff: Source/core/editing/VisibleSelection.h

Issue 299353004: Oilpan: move editing objects to the heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Make test wrapper class finalized 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
« no previous file with comments | « Source/core/editing/VisiblePosition.cpp ('k') | Source/core/editing/VisibleSelection.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/editing/VisibleSelection.h
diff --git a/Source/core/editing/VisibleSelection.h b/Source/core/editing/VisibleSelection.h
index c14630c15d700258279bc14bf5c7d10716c4e681..920c6b8ff035171de3d3a0935a6c6da2addb311e 100644
--- a/Source/core/editing/VisibleSelection.h
+++ b/Source/core/editing/VisibleSelection.h
@@ -39,6 +39,7 @@ const EAffinity SEL_DEFAULT_AFFINITY = DOWNSTREAM;
enum SelectionDirection { DirectionForward, DirectionBackward, DirectionRight, DirectionLeft };
class VisibleSelection {
+ DISALLOW_ALLOCATION();
public:
VisibleSelection();
@@ -116,18 +117,21 @@ public:
// or end is moved to a different position.
//
// Objects implementing |ChangeObserver| interface must outlive the VisibleSelection object.
- class ChangeObserver {
+ class ChangeObserver : public WillBeGarbageCollectedMixin {
WTF_MAKE_NONCOPYABLE(ChangeObserver);
public:
ChangeObserver();
virtual ~ChangeObserver();
virtual void didChangeVisibleSelection() = 0;
+ virtual void trace(Visitor*) { }
};
void setChangeObserver(ChangeObserver&);
void clearChangeObserver();
void didChange(); // Fire the change observer, if any.
+ void trace(Visitor*);
+
#ifndef NDEBUG
void debugPosition() const;
void formatForDebugger(char* buffer, unsigned length) const;
@@ -156,7 +160,9 @@ private:
EAffinity m_affinity; // the upstream/downstream affinity of the caret
- ChangeObserver* m_changeObserver;
+ // Oilpan: this reference has a lifetime that is at least as long
+ // as this object.
+ RawPtrWillBeMember<ChangeObserver> m_changeObserver;
// these are cached, can be recalculated by validate()
SelectionType m_selectionType; // None, Caret, Range
« no previous file with comments | « Source/core/editing/VisiblePosition.cpp ('k') | Source/core/editing/VisibleSelection.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698