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

trey trey at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:24:17 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit f120802a5ea4a323bc34669ece33e1129b55d90a
Author: trey <trey at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Feb 10 23:03:41 2003 +0000

    	Following the recent fix for ensuring that we always have a FormDelegate,
    	when we need a default policy delegate we use a shared one instead of allocing
    	a new one each time, which then would leak.
    
    	This included getting rid of the initWithWebController: method in the
    	WebDefaultPolicyDelegate API.  The arg was not used.
    
            Reviewed by Richard
    
            * WebKit.pbproj/project.pbxproj:  new private header
            * WebView.subproj/WebController.m:
            (-[WebController policyDelegate]):  use shared delegate if none set
            * WebView.subproj/WebDefaultPolicyDelegate.h:
            * WebView.subproj/WebDefaultPolicyDelegate.m:
            (+[WebDefaultPolicyDelegate _sharedWebPolicyDelegate]):  return shared instance
            * WebView.subproj/WebDefaultPolicyDelegatePrivate.h: Added.
            * WebView.subproj/WebFormDelegate.m:
            (+[WebFormDelegate _sharedWebFormDelegate]):  Trivial renaming of static.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@3622 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 93c7cfc..6e0eabb 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,24 @@
+2003-02-10  Trey Matteson  <trey at apple.com>
+
+	Following the recent fix for ensuring that we always have a FormDelegate,
+	when we need a default policy delegate we use a shared one instead of allocing
+	a new one each time, which then would leak.
+
+	This included getting rid of the initWithWebController: method in the 
+	WebDefaultPolicyDelegate API.  The arg was not used.
+
+        Reviewed by Richard
+
+        * WebKit.pbproj/project.pbxproj:  new private header
+        * WebView.subproj/WebController.m:
+        (-[WebController policyDelegate]):  use shared delegate if none set
+        * WebView.subproj/WebDefaultPolicyDelegate.h:
+        * WebView.subproj/WebDefaultPolicyDelegate.m:
+        (+[WebDefaultPolicyDelegate _sharedWebPolicyDelegate]):  return shared instance
+        * WebView.subproj/WebDefaultPolicyDelegatePrivate.h: Added.
+        * WebView.subproj/WebFormDelegate.m:
+        (+[WebFormDelegate _sharedWebFormDelegate]):  Trivial renaming of static.
+
 2003-02-10  Richard Williamson   <rjw at apple.com>
 
         Update API issues document.
diff --git a/WebKit/WebKit.pbproj/project.pbxproj b/WebKit/WebKit.pbproj/project.pbxproj
index a4264bf..195f0c8 100644
--- a/WebKit/WebKit.pbproj/project.pbxproj
+++ b/WebKit/WebKit.pbproj/project.pbxproj
@@ -98,6 +98,7 @@
 				9C7CABBB0190A37C0ECA16EA,
 				0867D69AFE84028FC02AAC07,
 				034768DFFF38A50411DB9C8B,
+				2D386AD203F822B500A80166,
 			);
 			isa = PBXGroup;
 			name = WebKit;
@@ -301,6 +302,7 @@
 				8466AEDE03F1F82100CA2ACA,
 				8324709A03F32305003026AC,
 				2D36FD5F03F78F9E00A80166,
+				2D386AD303F822B500A80166,
 			);
 			isa = PBXHeadersBuildPhase;
 			runOnlyForDeploymentPostprocessing = 0;
@@ -591,6 +593,19 @@
 			settings = {
 			};
 		};
+		2D386AD203F822B500A80166 = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			name = WebDefaultPolicyDelegatePrivate.h;
+			path = WebView.subproj/WebDefaultPolicyDelegatePrivate.h;
+			refType = 4;
+		};
+		2D386AD303F822B500A80166 = {
+			fileRef = 2D386AD203F822B500A80166;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
 		2D81DAB203EB0B2D00A80166 = {
 			fileEncoding = 30;
 			isa = PBXFileReference;
diff --git a/WebKit/WebView.subproj/WebController.m b/WebKit/WebView.subproj/WebController.m
index f440999..36dc1b6 100644
--- a/WebKit/WebView.subproj/WebController.m
+++ b/WebKit/WebView.subproj/WebController.m
@@ -13,7 +13,7 @@
 #import <WebKit/WebControllerPolicyDelegate.h>
 #import <WebKit/WebControllerPrivate.h>
 #import <WebKit/WebDataSourcePrivate.h>
-#import <WebKit/WebDefaultPolicyDelegate.h>
+#import <WebKit/WebDefaultPolicyDelegatePrivate.h>
 #import <WebKit/WebDocument.h>
 #import <WebKit/WebDynamicScrollBarsView.h>
 #import <WebKit/WebException.h>
@@ -161,9 +161,8 @@ NSString *WebElementLinkTitleKey = 		@"WebElementLinkTitle";
 
 - (id<WebControllerPolicyDelegate>)policyDelegate
 {
-    // FIXME: This leaks!
     if (!_private->policyDelegate)
-        _private->policyDelegate = [[WebDefaultPolicyDelegate alloc] initWithWebController: self];
+        _private->policyDelegate = [WebDefaultPolicyDelegate _sharedWebPolicyDelegate];
     return _private->policyDelegate;
 }
 
diff --git a/WebKit/WebView.subproj/WebDefaultPolicyDelegate.h b/WebKit/WebView.subproj/WebDefaultPolicyDelegate.h
index 7379459..a3b28f5 100644
--- a/WebKit/WebView.subproj/WebDefaultPolicyDelegate.h
+++ b/WebKit/WebView.subproj/WebDefaultPolicyDelegate.h
@@ -6,23 +6,11 @@
 */
 #import <Foundation/Foundation.h>
 
- at class WebController;
-
 /*!
     @class WebDefaultPolicyDelegate
     @discussion WebDefaultPolicyDelegate will be used a a WebController's
     default policy delegate.  It can be subclassed to modify policies. 
 */
 @interface WebDefaultPolicyDelegate : NSObject <WebControllerPolicyDelegate>
-{
-    WebController *webController;
-}
-
-/*!
-    @method initWithWebController:
-    @param webController The controller that will use this delegate.  Note that the controller is not retained.
-    @result An initialized WebDefaultPolicyDelegate
-*/
-- initWithWebController: (WebController *)webController;
 @end
 
diff --git a/WebKit/WebView.subproj/WebDefaultPolicyDelegate.m b/WebKit/WebView.subproj/WebDefaultPolicyDelegate.m
index 63a59e1..783cda3 100644
--- a/WebKit/WebView.subproj/WebDefaultPolicyDelegate.m
+++ b/WebKit/WebView.subproj/WebDefaultPolicyDelegate.m
@@ -3,7 +3,7 @@
 	Copyright 2002, Apple Computer, Inc.
 */
 #import <WebKit/WebController.h>
-#import <WebKit/WebControllerPolicyDelegate.h>
+#import <WebKit/WebControllerPolicyDelegatePrivate.h>
 #import <WebKit/WebDataSource.h>
 #import <WebKit/WebDefaultPolicyDelegate.h>
 #import <WebKit/WebFrame.h>
@@ -14,11 +14,16 @@
 
 @implementation WebDefaultPolicyDelegate
 
-- initWithWebController: (WebController *)wc
+static WebDefaultPolicyDelegate *sharedDelegate = nil;
+
+// Return a object with vanilla implementations of the protocol's methods
+// Note this feature relies on our default delegate being stateless
++ (WebDefaultPolicyDelegate *)_sharedWebPolicyDelegate
 {
-    [super init];
-    webController = wc;  // Non-retained, like a delegate.
-    return self;
+    if (!sharedDelegate) {
+        sharedDelegate = [[WebDefaultPolicyDelegate alloc] init];
+    }
+    return sharedDelegate;
 }
 
 - (void)unableToImplementPolicy:(WebPolicyAction)policy error:(WebError *)error forURL:(NSURL *)URL inFrame:(WebFrame *)frame
diff --git a/WebKit/WebView.subproj/WebDefaultPolicyDelegatePrivate.h b/WebKit/WebView.subproj/WebDefaultPolicyDelegatePrivate.h
new file mode 100644
index 0000000..a570890
--- /dev/null
+++ b/WebKit/WebView.subproj/WebDefaultPolicyDelegatePrivate.h
@@ -0,0 +1,13 @@
+/*
+        WebDefaultPolicyDelegatePrivate.h
+	Copyright 2002, Apple Computer, Inc.
+ */
+
+#import <Foundation/Foundation.h>
+
+#import "WebDefaultPolicyDelegate.h"
+
+ at interface WebDefaultPolicyDelegate (WebPrivate)
++ (WebDefaultPolicyDelegate *)_sharedWebPolicyDelegate;
+ at end
+
diff --git a/WebKit/WebView.subproj/WebFormDelegate.m b/WebKit/WebView.subproj/WebFormDelegate.m
index 9a9a381..bf08f1a 100644
--- a/WebKit/WebView.subproj/WebFormDelegate.m
+++ b/WebKit/WebView.subproj/WebFormDelegate.m
@@ -7,16 +7,16 @@
 
 @implementation WebFormDelegate
 
-static WebFormDelegate *SharedDelegate = nil;
+static WebFormDelegate *sharedDelegate = nil;
 
 // Return a object with NOP implementations of the protocol's methods
 // Note this feature relies on our default delegate being stateless
 + (WebFormDelegate *)_sharedWebFormDelegate
 {
-    if (!SharedDelegate) {
-        SharedDelegate = [[WebFormDelegate alloc] init];
+    if (!sharedDelegate) {
+        sharedDelegate = [[WebFormDelegate alloc] init];
     }
-    return SharedDelegate;
+    return sharedDelegate;
 }
     
 - (void)controlTextDidBeginEditing:(NSNotification *)obj inFrame:(WebFrame *)frame { }
diff --git a/WebKit/WebView.subproj/WebView.m b/WebKit/WebView.subproj/WebView.m
index f440999..36dc1b6 100644
--- a/WebKit/WebView.subproj/WebView.m
+++ b/WebKit/WebView.subproj/WebView.m
@@ -13,7 +13,7 @@
 #import <WebKit/WebControllerPolicyDelegate.h>
 #import <WebKit/WebControllerPrivate.h>
 #import <WebKit/WebDataSourcePrivate.h>
-#import <WebKit/WebDefaultPolicyDelegate.h>
+#import <WebKit/WebDefaultPolicyDelegatePrivate.h>
 #import <WebKit/WebDocument.h>
 #import <WebKit/WebDynamicScrollBarsView.h>
 #import <WebKit/WebException.h>
@@ -161,9 +161,8 @@ NSString *WebElementLinkTitleKey = 		@"WebElementLinkTitle";
 
 - (id<WebControllerPolicyDelegate>)policyDelegate
 {
-    // FIXME: This leaks!
     if (!_private->policyDelegate)
-        _private->policyDelegate = [[WebDefaultPolicyDelegate alloc] initWithWebController: self];
+        _private->policyDelegate = [WebDefaultPolicyDelegate _sharedWebPolicyDelegate];
     return _private->policyDelegate;
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list