WebKit:
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 20 Nov 2004 21:44:48 +0000 (21:44 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 20 Nov 2004 21:44:48 +0000 (21:44 +0000)
        Reviewed by NOBODY (OOPS!).

<rdar://problem/3190977> closing window with many tabs in it can be quite slow

* WebView.subproj/WebFrame.m:
        (-[WebFrame _detachFromParent]): autorelease bridge instead of releasing it,
to make window and tab closing more responsive - this way the deallocation happens
after the windoow or tab appears to close.

WebBrowser:

        Reviewed by NOBODY (OOPS!).

        <rdar://problem/3190977> closing window with many tabs in it can be quite slow

* BrowserDocument.m:
        (-[BrowserDocument close]): Don't make an autorelease pool
here. This should not be needed for PLT world leak detection any
more, and it is necessary to make window closing responsive.

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

WebKit/ChangeLog
WebKit/WebView.subproj/WebFrame.m

index 70deedc358eb1ce12c617c50a0b4ff7a5c110695..b79e53c80c2b484897a9b60436093936f094db51 100644 (file)
@@ -1,3 +1,14 @@
+2004-11-19  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by NOBODY (OOPS!).
+
+       <rdar://problem/3190977> closing window with many tabs in it can be quite slow
+        
+       * WebView.subproj/WebFrame.m:
+        (-[WebFrame _detachFromParent]): autorelease bridge instead of releasing it,
+       to make window and tab closing more responsive - this way the deallocation happens
+       after the windoow or tab appears to close.
+
 === Safari-172 ===
 
 2004-11-19  Chris Blumenberg  <cblu@apple.com>
index 6a07f58ff43041bcca0d5dde9393d1f4c40737c2..41d9128c9835370e3cff2e50cd675b943d200307 100644 (file)
@@ -557,7 +557,10 @@ NSString *WebPageCacheDocumentViewKey = @"WebPageCacheDocumentViewKey";
 
     [bridge close];
     
-    [bridge release];
+    // autorelease instead of releasing, since this code path is used in the case of window
+    // close and we want to defer the possibly slow destruction of WebCore resources until
+    // after the window actually closes.
+    [bridge autorelease];
 }
 
 - (void)_setDataSource:(WebDataSource *)ds