Index: Source/core/editing/spellcheck/SpellCheckRequester.cpp |
diff --git a/Source/core/editing/spellcheck/SpellCheckRequester.cpp b/Source/core/editing/spellcheck/SpellCheckRequester.cpp |
index a5a99b8e2d641440ee7c76e0e59982527298ba69..72ac599b4850f1ba3f0ad9aa3f7a6d4306fdd69d 100644 |
--- a/Source/core/editing/spellcheck/SpellCheckRequester.cpp |
+++ b/Source/core/editing/spellcheck/SpellCheckRequester.cpp |
@@ -251,6 +251,12 @@ void SpellCheckRequester::didCheck(int sequence, const Vector<TextCheckingResult |
if (m_lastProcessedSequence < sequence) |
m_lastProcessedSequence = sequence; |
+ // This assumes that m_processingRequest's Ranges aren't shared. |
+ if (m_processingRequest->checkingRange()) |
+ m_processingRequest->checkingRange()->dispose(); |
+ if (m_processingRequest->paragraphRange()) |
+ m_processingRequest->paragraphRange()->dispose(); |
+ |
m_processingRequest.clear(); |
if (!m_requestQueue.isEmpty()) |
m_timerToProcessQueuedRequest.startOneShot(0, FROM_HERE); |