@@ -43,27 +43,18 @@ of this software and associated documentation files (the "Software"), to deal
43
43
CTFSiteKindWhitelist = 0
44
44
} CTGSiteKind;
45
45
46
-
47
- static NSUInteger indexOfItemForSite ( NSArray * arr, NSString * site )
46
+ static NSDictionary * itemForSite ( NSSet * set, NSString * site )
48
47
{
48
+ NSDictionary *specificWhitelistItem = nil ;
49
+
49
50
int i = 0 ;
50
- CTFForEachObject ( NSDictionary , item, arr ) {
51
+ CTFForEachObject ( NSDictionary , item, set ) {
51
52
if ( [ [ item objectForKey: @" site" ] isEqualToString: site ] )
52
- return i ;
53
+ specificWhitelistItem = item ;
53
54
++i;
54
55
}
55
56
56
- return NSNotFound ;
57
- }
58
-
59
- static NSDictionary * itemForSite ( NSArray * arr, NSString * site )
60
- {
61
- NSUInteger index = indexOfItemForSite ( arr, site );
62
-
63
- if ( index != NSNotFound )
64
- return [ arr objectAtIndex: index ];
65
-
66
- return nil ;
57
+ return specificWhitelistItem;
67
58
}
68
59
69
60
static NSDictionary * whitelistItemForSite ( NSString * site )
@@ -166,25 +157,31 @@ - (BOOL) _isHostWhitelisted
166
157
167
158
- (BOOL ) _isWhiteListedForHostString : (NSString *)hostString
168
159
{
169
- NSArray *hostWhitelist = [[CTFUserDefaultsController standardUserDefaults ] arrayForKey: sHostSiteInfoDefaultsKey ];
170
- return hostWhitelist && itemForSite (hostWhitelist, hostString) != nil ;
160
+ NSArray *hostWhitelistArray = [[CTFUserDefaultsController standardUserDefaults ] arrayForKey: sHostSiteInfoDefaultsKey ];
161
+ NSSet *hostWhitelistSet = [NSSet setWithArray: hostWhitelistArray];
162
+ return hostWhitelistArray && itemForSite (hostWhitelistSet, hostString) != nil ;
171
163
}
172
164
173
- - (NSMutableArray *) _mutableSiteInfo
165
+ - (NSMutableSet *) _mutableSiteInfo
174
166
{
175
- NSMutableArray *hostWhitelist = [[[[CTFUserDefaultsController standardUserDefaults ] arrayForKey: sHostSiteInfoDefaultsKey ] mutableCopy ] autorelease ];
176
- if (hostWhitelist == nil ) {
177
- hostWhitelist = [NSMutableArray array ];
178
- }
167
+ NSMutableArray *hostWhitelistArray = [[[[CTFUserDefaultsController standardUserDefaults ] arrayForKey: sHostSiteInfoDefaultsKey ] mutableCopy ] autorelease ];
168
+
169
+ NSMutableSet *hostWhitelist;
170
+ if (hostWhitelistArray == nil ) {
171
+ hostWhitelist = [NSMutableSet setWithCapacity: 0 ];
172
+ } else {
173
+ hostWhitelist = [NSMutableSet setWithArray: hostWhitelistArray];
174
+ }
175
+
179
176
return hostWhitelist;
180
177
}
181
178
182
179
- (void ) _addHostToWhitelist
183
180
{
184
- NSMutableArray *siteInfo = [self _mutableSiteInfo ];
181
+ NSMutableSet *siteInfo = [self _mutableSiteInfo ];
185
182
[siteInfo addObject: whitelistItemForSite ([self host ])];
186
183
187
- [[CTFUserDefaultsController standardUserDefaults ] setValue: siteInfo forKeyPath: @" values.siteInfo" ];
184
+ [[CTFUserDefaultsController standardUserDefaults ] setValue: [ siteInfo allObjects ] forKeyPath: @" values.siteInfo" ];
188
185
189
186
[[NSNotificationCenter defaultCenter ] postNotificationName: sCTFWhitelistAdditionMade object: self ];
190
187
}
0 commit comments