2006-04-28 Eric Seidel <eseidel@apple.com>
[WebKit-https.git] / WebCore / bridge / mac / WebCoreFrameBridge.mm
index 0eaf44896865a0c12ce8cc2e4834b390da8a34e8..263e47e994c94bfe29e49b6add006e3c3044ae35 100644 (file)
@@ -522,7 +522,14 @@ static inline WebCoreFrameBridge *bridge(Frame *frame)
         doc->setInPageCache(NO);
 
     KWQPageState *state = [pageCache objectForKey:WebCorePageCacheStateKey];
-    [state invalidate];
+
+    // FIXME: This is a grotesque hack to fix <rdar://problem/4059059> Crash in RenderFlow::detach
+    // Somehow the KWQPageState object is not properly updated, and is holding onto a stale document
+    // both Xcode and FileMaker see this crash, Safari does not.
+    // This if check MUST be removed as part of re-writing the loader down in WebCore
+    ASSERT(!state || ([state document] == doc));
+    if ([state document] == doc)
+        [state invalidate];
 }
 
 - (BOOL)canLoadURL:(NSURL *)URL fromReferrer:(NSString *)referrer hideReferrer:(BOOL *)hideReferrer