Reviewed by Darin.
authorharrison <harrison@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Mar 2005 20:54:43 +0000 (20:54 +0000)
committerharrison <harrison@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 Mar 2005 20:54:43 +0000 (20:54 +0000)
        <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running

        * kwq/KWQKHTMLPart.mm:
        (KWQKHTMLPart::advanceToNextMisspelling):
        (KWQKHTMLPart::markMisspellings):
        Nil check checker.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8866 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/kwq/KWQKHTMLPart.mm

index d32a8fd33a7695dca3fce778a734e154e60d04b3..e5af129a550069f641548ceca3fc0e73e127e01f 100644 (file)
@@ -1,3 +1,14 @@
+2005-03-11  David Harrison  <harrison@apple.com>
+
+        Reviewed by Darin.
+
+        <rdar://problem/4046602> WebCore invokes undefined behavior when the spell checker isn't running
+
+        * kwq/KWQKHTMLPart.mm:
+        (KWQKHTMLPart::advanceToNextMisspelling):
+        (KWQKHTMLPart::markMisspellings):
+        Nil check checker.
+
 2005-03-11  Ken Kocienda  <kocienda@apple.com>
 
         Reviewed by me
index 614fb588e855b214d91db0abd1ee7b858fb4e695..caa88aeae9856e71bba9a9441fb2062ae31df653 100644 (file)
@@ -986,7 +986,11 @@ QString KWQKHTMLPart::advanceToNextMisspelling(bool startBeforeSelection)
         return QString();       // nothing to search in
     }
     
+    // Get the spell checker if it is available
     NSSpellChecker *checker = [NSSpellChecker sharedSpellChecker];
+    if (checker == nil)
+        return QString();
+           
     WordAwareIterator it(searchRange);
     bool wrapped = false;
     
@@ -4009,7 +4013,11 @@ void KWQKHTMLPart::markMisspellings(const Selection &selection)
     if (!editableNodeImpl->isContentEditable())
         return;
     
+    // Get the spell checker if it is available
     NSSpellChecker *checker = [NSSpellChecker sharedSpellChecker];
+    if (checker == nil)
+        return;
+
     WordAwareIterator it(searchRange);
     
     while (!it.atEnd()) {      // we may be starting at the end of the doc, and already by atEnd