[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

rjw rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 05:55:40 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 99a7338ab6272bfecd99568bd495464541138d3a
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Feb 14 03:18:33 2002 +0000

    Fixed cleanup problem.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@620 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 5828ee4..af1a206 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,14 @@
+2002-02-13  Richard Williamson  <rjw at apple.com>
+
+    Fixed cleanup.  Should revisit ownership graph.  Cycles may be avoidable.
+    
+	* WebView.subproj/IFBaseWebControllerPrivate.mm: (-[IFBaseWebControllerPrivate
+	dealloc]):
+	* WebView.subproj/IFWebDataSource.mm: (-[IFWebDataSource setFrame:]):
+	* WebView.subproj/IFWebFrame.m: (-[IFWebFrame reset]):
+	* WebView.subproj/IFWebViewPrivate.h:
+	* WebView.subproj/IFWebViewPrivate.mm: (-[IFWebView _resetWidget]):
+
 2002-02-12  Richard Williamson  <rjw at apple.com>
 
     Made basic forms work.
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 5828ee4..af1a206 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,14 @@
+2002-02-13  Richard Williamson  <rjw at apple.com>
+
+    Fixed cleanup.  Should revisit ownership graph.  Cycles may be avoidable.
+    
+	* WebView.subproj/IFBaseWebControllerPrivate.mm: (-[IFBaseWebControllerPrivate
+	dealloc]):
+	* WebView.subproj/IFWebDataSource.mm: (-[IFWebDataSource setFrame:]):
+	* WebView.subproj/IFWebFrame.m: (-[IFWebFrame reset]):
+	* WebView.subproj/IFWebViewPrivate.h:
+	* WebView.subproj/IFWebViewPrivate.mm: (-[IFWebView _resetWidget]):
+
 2002-02-12  Richard Williamson  <rjw at apple.com>
 
     Made basic forms work.
diff --git a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm b/WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm
index 6df308a..0a3397b 100644
--- a/WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm
+++ b/WebKit/WebView.subproj/IFBaseWebControllerPrivate.mm
@@ -17,6 +17,7 @@
 
 - (void)dealloc
 {
+    [mainFrame reset];
     [mainFrame autorelease];
     [super dealloc];
 }
diff --git a/WebKit/WebView.subproj/IFWebDataSource.mm b/WebKit/WebView.subproj/IFWebDataSource.mm
index 7cefd1f..dbacff6 100644
--- a/WebKit/WebView.subproj/IFWebDataSource.mm
+++ b/WebKit/WebView.subproj/IFWebDataSource.mm
@@ -64,6 +64,7 @@
 
 - (void)setFrame: (IFWebFrame *)f
 {
+    // Careful, there is a cycle between IFWebFrame and IFWebDataSource.
     if (((IFWebDataSourcePrivate *)_dataSourcePrivate)->frame == f)
         return;
         
diff --git a/WebKit/WebView.subproj/IFWebFrame.m b/WebKit/WebView.subproj/IFWebFrame.m
index a86af55..6da8a4f 100644
--- a/WebKit/WebView.subproj/IFWebFrame.m
+++ b/WebKit/WebView.subproj/IFWebFrame.m
@@ -75,11 +75,13 @@
     [[data dataSource] setFrame: self];
 }
 
-// Required to break retain cycle between frame and data source.
+// Required to break retain cycle between frame and data source,
+// and also release the widget's view reference.
 - (void)reset
 {
     IFWebFramePrivate *data = (IFWebFramePrivate *)_framePrivate;
     [data setDataSource: nil];
+    [[data view] _resetWidget];
     [data setView: nil];
 }
 
diff --git a/WebKit/WebView.subproj/IFWebViewPrivate.h b/WebKit/WebView.subproj/IFWebViewPrivate.h
index 00eed0e..f134132 100644
--- a/WebKit/WebView.subproj/IFWebViewPrivate.h
+++ b/WebKit/WebView.subproj/IFWebViewPrivate.h
@@ -29,6 +29,7 @@ class KHTMLView;
 @interface IFWebView (IFPrivate)
 - (void)_setController: (id <IFWebController>)controller;
 - (void)_resetView;
+- (void)_resetWidget;
 - (KHTMLView *)_widget;
 - (void)_setFrameScrollView: (IFDynamicScrollBarsView *)sv;
 - (IFDynamicScrollBarsView *)_frameScrollView;
diff --git a/WebKit/WebView.subproj/IFWebViewPrivate.mm b/WebKit/WebView.subproj/IFWebViewPrivate.mm
index 038766f..6060aad 100644
--- a/WebKit/WebView.subproj/IFWebViewPrivate.mm
+++ b/WebKit/WebView.subproj/IFWebViewPrivate.mm
@@ -44,6 +44,13 @@
 
 @implementation IFWebView  (IFPrivate)
 
+- (void)_resetWidget
+{
+    if (((IFWebViewPrivate *)_viewPrivate)->widget)
+        delete ((IFWebViewPrivate *)_viewPrivate)->widget;
+    ((IFWebViewPrivate *)_viewPrivate)->widget = 0;
+}
+
 - (void)_resetView 
 {
     NSArray *views = [self subviews];
diff --git a/WebKit/WebView.subproj/WebDataSource.m b/WebKit/WebView.subproj/WebDataSource.m
index 7cefd1f..dbacff6 100644
--- a/WebKit/WebView.subproj/WebDataSource.m
+++ b/WebKit/WebView.subproj/WebDataSource.m
@@ -64,6 +64,7 @@
 
 - (void)setFrame: (IFWebFrame *)f
 {
+    // Careful, there is a cycle between IFWebFrame and IFWebDataSource.
     if (((IFWebDataSourcePrivate *)_dataSourcePrivate)->frame == f)
         return;
         
diff --git a/WebKit/WebView.subproj/WebFrameViewInternal.h b/WebKit/WebView.subproj/WebFrameViewInternal.h
index 00eed0e..f134132 100644
--- a/WebKit/WebView.subproj/WebFrameViewInternal.h
+++ b/WebKit/WebView.subproj/WebFrameViewInternal.h
@@ -29,6 +29,7 @@ class KHTMLView;
 @interface IFWebView (IFPrivate)
 - (void)_setController: (id <IFWebController>)controller;
 - (void)_resetView;
+- (void)_resetWidget;
 - (KHTMLView *)_widget;
 - (void)_setFrameScrollView: (IFDynamicScrollBarsView *)sv;
 - (IFDynamicScrollBarsView *)_frameScrollView;
diff --git a/WebKit/WebView.subproj/WebFrameViewPrivate.h b/WebKit/WebView.subproj/WebFrameViewPrivate.h
index 00eed0e..f134132 100644
--- a/WebKit/WebView.subproj/WebFrameViewPrivate.h
+++ b/WebKit/WebView.subproj/WebFrameViewPrivate.h
@@ -29,6 +29,7 @@ class KHTMLView;
 @interface IFWebView (IFPrivate)
 - (void)_setController: (id <IFWebController>)controller;
 - (void)_resetView;
+- (void)_resetWidget;
 - (KHTMLView *)_widget;
 - (void)_setFrameScrollView: (IFDynamicScrollBarsView *)sv;
 - (IFDynamicScrollBarsView *)_frameScrollView;
diff --git a/WebKit/WebView.subproj/WebFrameViewPrivate.m b/WebKit/WebView.subproj/WebFrameViewPrivate.m
index 038766f..6060aad 100644
--- a/WebKit/WebView.subproj/WebFrameViewPrivate.m
+++ b/WebKit/WebView.subproj/WebFrameViewPrivate.m
@@ -44,6 +44,13 @@
 
 @implementation IFWebView  (IFPrivate)
 
+- (void)_resetWidget
+{
+    if (((IFWebViewPrivate *)_viewPrivate)->widget)
+        delete ((IFWebViewPrivate *)_viewPrivate)->widget;
+    ((IFWebViewPrivate *)_viewPrivate)->widget = 0;
+}
+
 - (void)_resetView 
 {
     NSArray *views = [self subviews];

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list