Title: [218719] trunk/Tools
Revision
218719
Author
[email protected]
Date
2017-06-22 14:36:02 -0700 (Thu, 22 Jun 2017)

Log Message

REGRESSION (r218419): 7 leaks in PluginLoadClientPolicies.mm
<https://webkit.org/b/173721>

Reviewed by Joseph Pecoraro.

Use RetainPtr<> to create NSMutableDictionary and NSNumber
objects to fix leaks and to avoid the autoreleasepool.

* TestWebKitAPI/Tests/WebKit2Cocoa/PluginLoadClientPolicies.mm:
(TEST):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (218718 => 218719)


--- trunk/Tools/ChangeLog	2017-06-22 21:12:01 UTC (rev 218718)
+++ trunk/Tools/ChangeLog	2017-06-22 21:36:02 UTC (rev 218719)
@@ -1,3 +1,16 @@
+2017-06-22  David Kilzer  <[email protected]>
+
+        REGRESSION (r218419): 7 leaks in PluginLoadClientPolicies.mm
+        <https://webkit.org/b/173721>
+
+        Reviewed by Joseph Pecoraro.
+
+        Use RetainPtr<> to create NSMutableDictionary and NSNumber
+        objects to fix leaks and to avoid the autoreleasepool.
+
+        * TestWebKitAPI/Tests/WebKit2Cocoa/PluginLoadClientPolicies.mm:
+        (TEST):
+
 2017-06-22  Matt Lewis  <[email protected]>
 
         Unreviewed, rolling out r218633.

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/PluginLoadClientPolicies.mm (218718 => 218719)


--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/PluginLoadClientPolicies.mm	2017-06-22 21:12:01 UTC (rev 218718)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Cocoa/PluginLoadClientPolicies.mm	2017-06-22 21:36:02 UTC (rev 218719)
@@ -32,6 +32,7 @@
 #import <WebKit/WKContextPrivateMac.h>
 #import <WebKit/WKPluginInformation.h>
 #import <WebKit/WKProcessPoolPrivate.h>
+#import <wtf/RetainPtr.h>
 
 #if WK_API_ENABLED
 
@@ -67,16 +68,16 @@
     EXPECT_EQ(1U, ((NSDictionary *)policiesForAppleHost[@"com.microsoft.SilverlightPlugin"]).count);
     EXPECT_EQ(kWKPluginLoadClientPolicyAllow, [policiesForAppleHost[@"com.microsoft.SilverlightPlugin"][@"5.1.50901.0"] unsignedIntegerValue]);
     
-    NSMutableDictionary *newPolicies = [policies mutableCopy];
-    [newPolicies removeObjectForKey:@"apple.com"];
-    newPolicies[@"google.com"] = [[NSMutableDictionary alloc] init];
-    newPolicies[@"google.com"][@"com.macromedia.Flash Player.plugin"] = [[NSMutableDictionary alloc] init];
-    newPolicies[@"google.com"][@"com.macromedia.Flash Player.plugin"][@"26.0.0.126"] = [[NSNumber alloc] initWithUnsignedInt:kWKPluginLoadClientPolicyAllowAlways];
-    newPolicies[@"google.com"][@"com.apple.QuickTime.plugin"] = [[NSMutableDictionary alloc] init];
-    newPolicies[@"google.com"][@"com.apple.QuickTime.plugin"][@"1.0"] = [[NSNumber alloc] initWithUnsignedInt:kWKPluginLoadClientPolicyBlock];
-    newPolicies[@"google.com"][@"com.apple.QuickTime.plugin"][@"1.1"] = [[NSNumber alloc] initWithUnsignedInt:kWKPluginLoadClientPolicyAllow];
+    RetainPtr<NSMutableDictionary> newPolicies = adoptNS([policies mutableCopy]);
+    [newPolicies.get() removeObjectForKey:@"apple.com"];
+    newPolicies.get()[@"google.com"] = adoptNS([[NSMutableDictionary alloc] initWithCapacity:2]).get();
+    newPolicies.get()[@"google.com"][@"com.macromedia.Flash Player.plugin"] = adoptNS([[NSMutableDictionary alloc] initWithCapacity:1]).get();
+    newPolicies.get()[@"google.com"][@"com.macromedia.Flash Player.plugin"][@"26.0.0.126"] = adoptNS([[NSNumber alloc] initWithUnsignedInt:kWKPluginLoadClientPolicyAllowAlways]).get();
+    newPolicies.get()[@"google.com"][@"com.apple.QuickTime.plugin"] = adoptNS([[NSMutableDictionary alloc] initWithCapacity:2]).get();
+    newPolicies.get()[@"google.com"][@"com.apple.QuickTime.plugin"][@"1.0"] = adoptNS([[NSNumber alloc] initWithUnsignedInt:kWKPluginLoadClientPolicyBlock]).get();
+    newPolicies.get()[@"google.com"][@"com.apple.QuickTime.plugin"][@"1.1"] = adoptNS([[NSNumber alloc] initWithUnsignedInt:kWKPluginLoadClientPolicyAllow]).get();
     
-    [processPool.get() _resetPluginLoadClientPolicies:newPolicies];
+    [processPool.get() _resetPluginLoadClientPolicies:newPolicies.get()];
     
     policies = processPool.get()._pluginLoadClientPolicies;
     EXPECT_EQ(2U, policies.count);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to