Index: Source/core/editing/SpellCheckRequester.h |
diff --git a/Source/core/editing/SpellCheckRequester.h b/Source/core/editing/SpellCheckRequester.h |
index 9de9962f3c2d4855402b0a5520d6fc178215f233..6a616b4d521ae5f24c7f62ca7ed40f35f14808e8 100644 |
--- a/Source/core/editing/SpellCheckRequester.h |
+++ b/Source/core/editing/SpellCheckRequester.h |
@@ -45,7 +45,7 @@ class TextCheckerClient; |
class SpellCheckRequest FINAL : public TextCheckingRequest { |
public: |
- static PassRefPtr<SpellCheckRequest> create(TextCheckingTypeMask, TextCheckingProcessType, PassRefPtrWillBeRawPtr<Range> checkingRange, PassRefPtrWillBeRawPtr<Range> paragraphRange, int requestNumber = 0); |
+ static PassRefPtrWillBeRawPtr<SpellCheckRequest> create(TextCheckingTypeMask, TextCheckingProcessType, PassRefPtrWillBeRawPtr<Range> checkingRange, PassRefPtrWillBeRawPtr<Range> paragraphRange, int requestNumber = 0); |
virtual ~SpellCheckRequest(); |
PassRefPtrWillBeRawPtr<Range> checkingRange() const { return m_checkingRange; } |
@@ -53,7 +53,9 @@ public: |
PassRefPtrWillBeRawPtr<Element> rootEditableElement() const { return m_rootEditableElement; } |
void setCheckerAndSequence(SpellCheckRequester*, int sequence); |
+#if !ENABLE(OILPAN) |
void requesterDestroyed(); |
+#endif |
virtual const TextCheckingRequestData& data() const OVERRIDE; |
virtual void didSucceed(const Vector<TextCheckingResult>&) OVERRIDE; |
@@ -61,29 +63,34 @@ public: |
int requestNumber() const { return m_requestNumber; } |
+ virtual void trace(Visitor*) OVERRIDE; |
+ |
private: |
SpellCheckRequest(PassRefPtrWillBeRawPtr<Range> checkingRange, PassRefPtrWillBeRawPtr<Range> paragraphRange, const String&, TextCheckingTypeMask, TextCheckingProcessType, const Vector<uint32_t>& documentMarkersInRange, const Vector<unsigned>& documentMarkerOffsets, int requestNumber); |
- SpellCheckRequester* m_requester; |
- RefPtrWillBePersistent<Range> m_checkingRange; |
- RefPtrWillBePersistent<Range> m_paragraphRange; |
- RefPtrWillBePersistent<Element> m_rootEditableElement; |
+ RawPtrWillBeMember<SpellCheckRequester> m_requester; |
+ RefPtrWillBeMember<Range> m_checkingRange; |
+ RefPtrWillBeMember<Range> m_paragraphRange; |
+ RefPtrWillBeMember<Element> m_rootEditableElement; |
TextCheckingRequestData m_requestData; |
int m_requestNumber; |
}; |
-class SpellCheckRequester { |
- WTF_MAKE_NONCOPYABLE(SpellCheckRequester); WTF_MAKE_FAST_ALLOCATED; |
+class SpellCheckRequester FINAL : public NoBaseWillBeGarbageCollectedFinalized<SpellCheckRequester> { |
+ WTF_MAKE_NONCOPYABLE(SpellCheckRequester); WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; |
public: |
- friend class SpellCheckRequest; |
+ static PassOwnPtrWillBeRawPtr<SpellCheckRequester> create(LocalFrame& frame) |
+ { |
+ return adoptPtrWillBeNoop(new SpellCheckRequester(frame)); |
+ } |
- explicit SpellCheckRequester(LocalFrame&); |
~SpellCheckRequester(); |
+ void trace(Visitor*); |
bool isAsynchronousEnabled() const; |
bool isCheckable(Range*) const; |
- void requestCheckingFor(PassRefPtr<SpellCheckRequest>); |
+ void requestCheckingFor(PassRefPtrWillBeRawPtr<SpellCheckRequest>); |
void cancelCheck(); |
int lastRequestSequence() const |
@@ -97,24 +104,30 @@ public: |
} |
private: |
- typedef Deque<RefPtr<SpellCheckRequest> > RequestQueue; |
+ friend class SpellCheckRequest; |
+ |
+ explicit SpellCheckRequester(LocalFrame&); |
bool canCheckAsynchronously(Range*) const; |
TextCheckerClient& client() const; |
void timerFiredToProcessQueuedRequest(Timer<SpellCheckRequester>*); |
- void invokeRequest(PassRefPtr<SpellCheckRequest>); |
- void enqueueRequest(PassRefPtr<SpellCheckRequest>); |
+ void invokeRequest(PassRefPtrWillBeRawPtr<SpellCheckRequest>); |
+ void enqueueRequest(PassRefPtrWillBeRawPtr<SpellCheckRequest>); |
void didCheckSucceed(int sequence, const Vector<TextCheckingResult>&); |
void didCheckCancel(int sequence); |
void didCheck(int sequence, const Vector<TextCheckingResult>&); |
- LocalFrame& m_frame; |
+ RawPtrWillBeMember<LocalFrame> m_frame; |
+ LocalFrame& frame() const { ASSERT(m_frame); return *m_frame; } |
+ |
int m_lastRequestSequence; |
int m_lastProcessedSequence; |
Timer<SpellCheckRequester> m_timerToProcessQueuedRequest; |
- RefPtr<SpellCheckRequest> m_processingRequest; |
+ RefPtrWillBeMember<SpellCheckRequest> m_processingRequest; |
+ |
+ typedef WillBeHeapDeque<RefPtrWillBeMember<SpellCheckRequest> > RequestQueue; |
RequestQueue m_requestQueue; |
}; |