Reviewed by Dave Harrison, Oliver, and Darin
authorbeidson <beidson@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 Nov 2006 01:16:10 +0000 (01:16 +0000)
committerbeidson <beidson@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 Nov 2006 01:16:10 +0000 (01:16 +0000)
        (oh my!  where was superkevin on this one?)

        <rdar://problem/4816196> "Xcode Help" crashes in WebCore::DocumentLoader::setPrimaryLoadComplete(bool)

        More "free nil checking" we lost in the transition from ObjC to C++

        * loader/mac/FrameLoaderMac.mm:
        (WebCore::FrameLoader::startLoading): Null check m_provisionalDocumentLoader and bail early.
        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ditto

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

WebCore/ChangeLog
WebCore/loader/mac/FrameLoaderMac.mm

index 4caec97289c8875ccadfffe3750d5e7b2c5e25e9..3efb242a886ee8906e3991ba83dd277ec2f00338 100644 (file)
@@ -1,3 +1,16 @@
+2006-11-08  Brady Eidson  <beidson@apple.com>
+
+        Reviewed by Dave Harrison, Oliver, and Darin 
+        (oh my!  where was superkevin on this one?)
+
+        <rdar://problem/4816196> "Xcode Help" crashes in WebCore::DocumentLoader::setPrimaryLoadComplete(bool)
+
+        More "free nil checking" we lost in the transition from ObjC to C++
+
+        * loader/mac/FrameLoaderMac.mm:
+        (WebCore::FrameLoader::startLoading): Null check m_provisionalDocumentLoader and bail early.
+        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ditto
+
 2006-11-08  Anders Carlsson  <acarlsson@apple.com>
 
         Reviewed by Adam.
index 20123f4a4e4b697675c8fd7a4f68f0fce9196f33..42f2a2f989786f09274c9bb139e1f4f35db24988 100644 (file)
@@ -301,6 +301,9 @@ bool FrameLoader::startLoadingMainResource(NSMutableURLRequest *request, id iden
 // FIXME: Poor method name; also, why is this not part of startProvisionalLoad:?
 void FrameLoader::startLoading()
 {
+    if (!m_provisionalDocumentLoader)
+        return;
+
     m_provisionalDocumentLoader->prepareForLoadStart();
 
     if (m_mainResourceLoader)
@@ -964,7 +967,9 @@ void FrameLoader::checkLoadCompleteForThisFrame()
                 return;
 
             RefPtr<DocumentLoader> pdl = m_provisionalDocumentLoader;
-
+            if (!pdl)
+                return;
+                
             // If we've received any errors we may be stuck in the provisional state and actually complete.
             NSError *error = pdl->mainDocumentError();
             if (!error)