Skip to content

Commit 4800c88

Browse files
authored
Merge pull request #1388 from BranchMetrics/SDK-2302
SDK 2302 update singleton creation to dispatch once
2 parents 773ab3c + 1836823 commit 4800c88

24 files changed

+69
-70
lines changed

Branch-TestBed/Branch-SDK-Tests/BNCEncodingUtilsTests.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,8 +291,8 @@ - (void)testDecodeQueryStringToDictionary {
291291
#pragma mark - Test Util methods
292292

293293
- (NSString *)stringForDate:(NSDate *)date {
294-
static NSDateFormatter *dateFormatter;
295-
static dispatch_once_t onceToken;
294+
static NSDateFormatter *dateFormatter = nil;
295+
static dispatch_once_t onceToken = 0;
296296

297297
dispatch_once(&onceToken, ^{
298298
dateFormatter = [[NSDateFormatter alloc] init];

Sources/BranchSDK/BNCAppGroupsData.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ @interface BNCAppGroupsData()
1818
@implementation BNCAppGroupsData
1919

2020
+ (instancetype)shared {
21-
static BNCAppGroupsData *appGroupsData;
22-
static dispatch_once_t onceToken;
21+
static BNCAppGroupsData *appGroupsData = nil;
22+
static dispatch_once_t onceToken = 0;
2323
dispatch_once(&onceToken, ^{
2424
appGroupsData = [BNCAppGroupsData new];
2525
});

Sources/BranchSDK/BNCAppleReceipt.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ @interface BNCAppleReceipt()
2323
@implementation BNCAppleReceipt
2424

2525
+ (BNCAppleReceipt *)sharedInstance {
26-
static BNCAppleReceipt *singleton;
27-
static dispatch_once_t onceToken;
26+
static BNCAppleReceipt *singleton = nil;
27+
static dispatch_once_t onceToken = 0;
2828
dispatch_once(&onceToken, ^{
2929
singleton = [BNCAppleReceipt new];
3030
});

Sources/BranchSDK/BNCCallbackMap.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ @interface BNCCallbackMap()
1515
@implementation BNCCallbackMap
1616

1717
+ (instancetype)shared {
18-
static BNCCallbackMap *map;
19-
static dispatch_once_t onceToken;
18+
static BNCCallbackMap *map = nil;
19+
static dispatch_once_t onceToken = 0;
2020
dispatch_once(&onceToken, ^{
2121
map = [BNCCallbackMap new];
2222
});

Sources/BranchSDK/BNCDeviceInfo.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ @interface BNCDeviceInfo()
3434
@implementation BNCDeviceInfo
3535

3636
+ (BNCDeviceInfo *)getInstance {
37-
static BNCDeviceInfo *bnc_deviceInfo = 0;
37+
static BNCDeviceInfo *bnc_deviceInfo = nil;
3838
static dispatch_once_t onceToken = 0;
3939
dispatch_once(&onceToken, ^{
4040
bnc_deviceInfo = [BNCDeviceInfo new];

Sources/BranchSDK/BNCEncodingUtils.m

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,8 @@ + (NSString *)sha256Encode:(NSString *)input {
129129
#pragma mark - Param Encoding methods
130130

131131
+ (NSString *)iso8601StringFromDate:(NSDate *)date {
132-
static NSDateFormatter *dateFormatter;
133-
static dispatch_once_t onceToken;
134-
132+
static NSDateFormatter *dateFormatter = nil;
133+
static dispatch_once_t onceToken = 0;
135134
dispatch_once(&onceToken, ^{
136135
dateFormatter = [[NSDateFormatter alloc] init];
137136
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]]; // POSIX to avoid weird issues

Sources/BranchSDK/BNCEventUtils.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ @interface BNCEventUtils()
1515
@implementation BNCEventUtils
1616

1717
+ (instancetype)shared {
18-
static BNCEventUtils *set;
19-
static dispatch_once_t onceToken;
18+
static BNCEventUtils *set = nil;
19+
static dispatch_once_t onceToken = 0;
2020
dispatch_once(&onceToken, ^{
2121
set = [BNCEventUtils new];
2222
});

Sources/BranchSDK/BNCKeyChain.m

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,9 @@ + (NSError*) removeValuesForService:(NSString *)service key:(NSString *)key {
149149

150150
// The security access group string is prefixed with the Apple Developer Team ID
151151
+ (NSString * _Nullable)securityAccessGroup {
152-
@synchronized(self) {
153-
static NSString *_securityAccessGroup = nil;
154-
if (_securityAccessGroup) return _securityAccessGroup;
152+
static NSString *_securityAccessGroup = nil;
153+
static dispatch_once_t onceToken = 0;
154+
dispatch_once(&onceToken, ^{
155155

156156
// The keychain cannot be empty prior to requesting the security access group string. Add a tmp variable.
157157
NSError *error = [self storeDate:[NSDate date] forService:@"BranchKeychainService" key:@"Temp" cloudAccessGroup:nil];
@@ -168,18 +168,23 @@ + (NSString * _Nullable)securityAccessGroup {
168168
};
169169
CFDictionaryRef resultDictionary = NULL;
170170
OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)dictionary, (CFTypeRef*)&resultDictionary);
171-
if (status == errSecItemNotFound) return nil;
171+
172+
if (status == errSecItemNotFound) {
173+
return;
174+
}
172175
if (status != errSecSuccess) {
173176
[[BranchLogger shared] logWarning:[NSString stringWithFormat:@"Failed to retrieve security access group"] error:[self errorWithKey:nil OSStatus:status]];
174-
return nil;
177+
return;
175178
}
176179
NSString *group = [(__bridge NSDictionary *)resultDictionary objectForKey:(__bridge NSString *)kSecAttrAccessGroup];
177180
if (group.length > 0) {
178181
_securityAccessGroup = [group copy];
179182
}
180183
CFRelease(resultDictionary);
181-
return _securityAccessGroup;
182-
}
184+
});
185+
186+
return _securityAccessGroup;
187+
183188
}
184189

185190
@end

Sources/BranchSDK/BNCPartnerParameters.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ @interface BNCPartnerParameters()
1616
@implementation BNCPartnerParameters
1717

1818
+ (instancetype)shared {
19-
static BNCPartnerParameters *partnerParameters;
20-
static dispatch_once_t onceToken;
19+
static BNCPartnerParameters *partnerParameters = nil;
20+
static dispatch_once_t onceToken = 0;
2121
dispatch_once(&onceToken, ^{
2222
partnerParameters = [BNCPartnerParameters new];
2323
});

Sources/BranchSDK/BNCPasteboard.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
@implementation BNCPasteboard
1414

1515
+ (BNCPasteboard *)sharedInstance {
16-
static BNCPasteboard *pasteboard;
17-
static dispatch_once_t onceToken;
16+
static BNCPasteboard *pasteboard = nil;
17+
static dispatch_once_t onceToken = 0;
1818
dispatch_once(&onceToken, ^{
1919
pasteboard = [BNCPasteboard new];
2020
});

0 commit comments

Comments
 (0)