Skip to content

Commit 2893a2c

Browse files
committed
ARC compatibility fixes for GCDAsyncUdpSocket
1 parent 42cfdc7 commit 2893a2c

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

GCD/GCDAsyncUdpSocket.m

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4270,7 +4270,7 @@ + (void)removeStreamListener:(GCDAsyncUdpSocket *)asyncUdpSocket
42704270
static void CFReadStreamCallback(CFReadStreamRef stream, CFStreamEventType type, void *pInfo)
42714271
{
42724272
@autoreleasepool {
4273-
GCDAsyncUdpSocket *asyncUdpSocket = [(GCDAsyncUdpSocket *)pInfo retain];
4273+
GCDAsyncUdpSocket *asyncUdpSocket = (__bridge GCDAsyncUdpSocket *)pInfo;
42744274

42754275
switch(type)
42764276
{
@@ -4287,10 +4287,10 @@ static void CFReadStreamCallback(CFReadStreamRef stream, CFStreamEventType type,
42874287
case kCFStreamEventErrorOccurred:
42884288
case kCFStreamEventEndEncountered:
42894289
{
4290-
NSError *error = NSMakeCollectable(CFReadStreamCopyError(stream));
4290+
NSError *error = (__bridge_transfer NSError *)CFReadStreamCopyError(stream);
42914291
if (error == nil && type == kCFStreamEventEndEncountered)
42924292
{
4293-
error = [[asyncUdpSocket socketClosedError] retain];
4293+
error = [asyncUdpSocket socketClosedError];
42944294
}
42954295

42964296
dispatch_async(asyncUdpSocket->socketQueue, ^{ @autoreleasepool {
@@ -4309,23 +4309,20 @@ static void CFReadStreamCallback(CFReadStreamRef stream, CFStreamEventType type,
43094309

43104310
}});
43114311

4312-
[error release];
43134312
break;
43144313
}
43154314
default:
43164315
{
43174316
LogCError(@"CFReadStreamCallback - UnknownType: %i", (int)type);
43184317
}
43194318
}
4320-
4321-
[asyncUdpSocket release];
43224319
}
43234320
}
43244321

43254322
static void CFWriteStreamCallback(CFWriteStreamRef stream, CFStreamEventType type, void *pInfo)
43264323
{
43274324
@autoreleasepool {
4328-
GCDAsyncUdpSocket *asyncUdpSocket = [(GCDAsyncUdpSocket *)pInfo retain];
4325+
GCDAsyncUdpSocket *asyncUdpSocket = (__bridge GCDAsyncUdpSocket *)pInfo;
43294326

43304327
switch(type)
43314328
{
@@ -4342,10 +4339,10 @@ static void CFWriteStreamCallback(CFWriteStreamRef stream, CFStreamEventType typ
43424339
case kCFStreamEventErrorOccurred:
43434340
case kCFStreamEventEndEncountered:
43444341
{
4345-
NSError *error = NSMakeCollectable(CFWriteStreamCopyError(stream));
4342+
NSError *error = (__bridge_transfer NSError *)CFWriteStreamCopyError(stream);
43464343
if (error == nil && type == kCFStreamEventEndEncountered)
43474344
{
4348-
error = [[asyncUdpSocket socketClosedError] retain];
4345+
error = [asyncUdpSocket socketClosedError];
43494346
}
43504347

43514348
dispatch_async(asyncUdpSocket->socketQueue, ^{ @autoreleasepool {
@@ -4364,16 +4361,13 @@ static void CFWriteStreamCallback(CFWriteStreamRef stream, CFStreamEventType typ
43644361

43654362
}});
43664363

4367-
[error release];
43684364
break;
43694365
}
43704366
default:
43714367
{
43724368
LogCError(@"CFWriteStreamCallback - UnknownType: %i", (int)type);
43734369
}
43744370
}
4375-
4376-
[asyncUdpSocket release];
43774371
}
43784372
}
43794373

@@ -4472,7 +4466,7 @@ - (BOOL)registerForStreamCallbacks:(NSError **)errPtr
44724466
NSError *err = nil;
44734467

44744468
streamContext.version = 0;
4475-
streamContext.info = self;
4469+
streamContext.info = (__bridge void *)self;
44764470
streamContext.retain = nil;
44774471
streamContext.release = nil;
44784472
streamContext.copyDescription = nil;
@@ -4776,6 +4770,9 @@ - (BOOL)enableBackgroundingOnSockets
47764770
return NO;
47774771
}
47784772

4773+
// Why is this commented out?
4774+
// See comments below.
4775+
47794776
// NSError *err = nil;
47804777
// if (![self createReadAndWriteStreams:&err])
47814778
// {
@@ -4818,7 +4815,7 @@ - (BOOL)enableBackgroundingOnSockets
48184815
//
48194816
// One tiny problem: the sockets will still get closed when the app gets backgrounded.
48204817
//
4821-
// Edit: Actually I forgot to set the voip flag in the Info.plist, so I need to test this again...
4818+
// Apple does not officially support backgrounding UDP sockets.
48224819

48234820
return NO;
48244821
}

0 commit comments

Comments
 (0)