Skip to content

Commit 32ba49a

Browse files
committed
Removed MRC support entirely
1 parent 8b87924 commit 32ba49a

20 files changed

+193
-435
lines changed

GCDWebDAVServer/GCDWebDAVServer.m

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2626
*/
2727

28+
#if !__has_feature(objc_arc)
29+
#error GCDWebDAVServer requires ARC
30+
#endif
31+
2832
// WebDAV specifications: http://webdav.org/specs/rfc4918.html
2933

3034
// Requires "HEADER_SEARCH_PATHS = $(SDKROOT)/usr/include/libxml2" in Xcode build settings
@@ -418,9 +422,6 @@ - (GCDWebServerResponse*)performPROPFIND:(GCDWebServerDataRequest*)request {
418422
}
419423
if (!success) {
420424
NSString* string = [[NSString alloc] initWithData:request.data encoding:NSUTF8StringEncoding];
421-
#if !__has_feature(objc_arc)
422-
[string autorelease];
423-
#endif
424425
return [GCDWebServerErrorResponse responseWithClientError:kGCDWebServerHTTPStatusCode_BadRequest message:@"Invalid DAV properties:\n%@", string];
425426
}
426427
} else {
@@ -519,9 +520,6 @@ - (GCDWebServerResponse*)performLOCK:(GCDWebServerDataRequest*)request {
519520
}
520521
if (!success) {
521522
NSString* string = [[NSString alloc] initWithData:request.data encoding:NSUTF8StringEncoding];
522-
#if !__has_feature(objc_arc)
523-
[string autorelease];
524-
#endif
525523
return [GCDWebServerErrorResponse responseWithClientError:kGCDWebServerHTTPStatusCode_BadRequest message:@"Invalid DAV properties:\n%@", string];
526524
}
527525

@@ -607,11 +605,7 @@ @implementation GCDWebDAVServer
607605
- (instancetype)initWithUploadDirectory:(NSString*)path {
608606
if ((self = [super init])) {
609607
_uploadDirectory = [[path stringByStandardizingPath] copy];
610-
#if __has_feature(objc_arc)
611608
GCDWebDAVServer* __unsafe_unretained server = self;
612-
#else
613-
__block GCDWebDAVServer* server = self;
614-
#endif
615609

616610
// 9.1 PROPFIND method
617611
[self addDefaultHandlerForMethod:@"PROPFIND" requestClass:[GCDWebServerDataRequest class] processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {
@@ -667,17 +661,6 @@ - (instancetype)initWithUploadDirectory:(NSString*)path {
667661
return self;
668662
}
669663

670-
#if !__has_feature(objc_arc)
671-
672-
- (void)dealloc {
673-
[_uploadDirectory release];
674-
[_allowedExtensions release];
675-
676-
[super dealloc];
677-
}
678-
679-
#endif
680-
681664
@end
682665

683666
@implementation GCDWebDAVServer (Subclassing)

GCDWebServer/Core/GCDWebServer.m

Lines changed: 38 additions & 57 deletions
Large diffs are not rendered by default.

GCDWebServer/Core/GCDWebServerConnection.m

Lines changed: 29 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2626
*/
2727

28+
#if !__has_feature(objc_arc)
29+
#error GCDWebServer requires ARC
30+
#endif
31+
2832
#import <TargetConditionals.h>
2933
#import <netdb.h>
3034
#ifdef __GCDWEBSERVER_ENABLE_TESTING__
@@ -172,7 +176,6 @@ - (void)_readBodyWithRemainingLength:(NSUInteger)length completionBlock:(ReadBod
172176
}
173177

174178
}];
175-
ARC_RELEASE(bodyData);
176179
}
177180

178181
static inline NSUInteger _ScanHexNumber(const void* bytes, NSUInteger size) {
@@ -244,15 +247,8 @@ - (void)_readNextBodyChunk:(NSMutableData*)chunkData completionBlock:(ReadBodyCo
244247
@implementation GCDWebServerConnection (Write)
245248

246249
- (void)_writeData:(NSData*)data withCompletionBlock:(WriteDataCompletionBlock)block {
247-
#if !__has_feature(objc_arc)
248-
[data retain];
249-
#endif
250250
dispatch_data_t buffer = dispatch_data_create(data.bytes, data.length, kGCDWebServerGCDQueue, ^{
251-
#if __has_feature(objc_arc)
252251
[data self]; // Keeps ARC from releasing data too early
253-
#else
254-
[data release];
255-
#endif
256252
});
257253
dispatch_write(_socket, buffer, kGCDWebServerGCDQueue, ^(dispatch_data_t remainingData, int error) {
258254

@@ -268,13 +264,15 @@ - (void)_writeData:(NSData*)data withCompletionBlock:(WriteDataCompletionBlock)b
268264
}
269265

270266
});
271-
ARC_DISPATCH_RELEASE(buffer);
267+
#if !OS_OBJECT_USE_OBJC_RETAIN_RELEASE
268+
dispatch_release(buffer);
269+
#endif
272270
}
273271

274272
- (void)_writeHeadersWithCompletionBlock:(WriteHeadersCompletionBlock)block {
275273
GWS_DCHECK(_responseMessage);
276274
CFDataRef data = CFHTTPMessageCopySerializedMessage(_responseMessage);
277-
[self _writeData:(ARC_BRIDGE NSData*)data withCompletionBlock:block];
275+
[self _writeData:(__bridge NSData*)data withCompletionBlock:block];
278276
CFRelease(data);
279277
}
280278

@@ -349,11 +347,7 @@ + (void)initialize {
349347
}
350348
if (_continueData == nil) {
351349
CFHTTPMessageRef message = CFHTTPMessageCreateResponse(kCFAllocatorDefault, 100, NULL, kCFHTTPVersion1_1);
352-
#if __has_feature(objc_arc)
353350
_continueData = CFBridgingRelease(CFHTTPMessageCopySerializedMessage(message));
354-
#else
355-
_continueData = (NSData*)CFHTTPMessageCopySerializedMessage(message);
356-
#endif
357351
CFRelease(message);
358352
GWS_DCHECK(_continueData);
359353
}
@@ -362,7 +356,7 @@ + (void)initialize {
362356
}
363357
if (_digestAuthenticationNonce == nil) {
364358
CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);
365-
_digestAuthenticationNonce = ARC_RETAIN(GCDWebServerComputeMD5Digest(@"%@", ARC_BRIDGE_RELEASE(CFUUIDCreateString(kCFAllocatorDefault, uuid))));
359+
_digestAuthenticationNonce = GCDWebServerComputeMD5Digest(@"%@", CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, uuid)));
366360
CFRelease(uuid);
367361
}
368362
}
@@ -376,8 +370,8 @@ - (void)_initializeResponseHeadersWithStatusCode:(NSInteger)statusCode {
376370
_statusCode = statusCode;
377371
_responseMessage = CFHTTPMessageCreateResponse(kCFAllocatorDefault, statusCode, NULL, kCFHTTPVersion1_1);
378372
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Connection"), CFSTR("Close"));
379-
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Server"), (ARC_BRIDGE CFStringRef)_server.serverName);
380-
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Date"), (ARC_BRIDGE CFStringRef)GCDWebServerFormatRFC822([NSDate date]));
373+
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Server"), (__bridge CFStringRef)_server.serverName);
374+
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Date"), (__bridge CFStringRef)GCDWebServerFormatRFC822([NSDate date]));
381375
}
382376

383377
- (void)_startProcessingRequest {
@@ -410,36 +404,36 @@ - (void)_finishProcessingRequest:(GCDWebServerResponse*)response {
410404
if (hasBody && ![response performOpen:&error]) {
411405
GWS_LOG_ERROR(@"Failed opening response body for socket %i: %@", _socket, error);
412406
} else {
413-
_response = ARC_RETAIN(response);
407+
_response = response;
414408
}
415409
}
416410

417411
if (_response) {
418412
[self _initializeResponseHeadersWithStatusCode:_response.statusCode];
419413
if (_response.lastModifiedDate) {
420-
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Last-Modified"), (ARC_BRIDGE CFStringRef)GCDWebServerFormatRFC822(_response.lastModifiedDate));
414+
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Last-Modified"), (__bridge CFStringRef)GCDWebServerFormatRFC822(_response.lastModifiedDate));
421415
}
422416
if (_response.eTag) {
423-
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("ETag"), (ARC_BRIDGE CFStringRef)_response.eTag);
417+
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("ETag"), (__bridge CFStringRef)_response.eTag);
424418
}
425419
if ((_response.statusCode >= 200) && (_response.statusCode < 300)) {
426420
if (_response.cacheControlMaxAge > 0) {
427-
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Cache-Control"), (ARC_BRIDGE CFStringRef)[NSString stringWithFormat:@"max-age=%i, public", (int)_response.cacheControlMaxAge]);
421+
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Cache-Control"), (__bridge CFStringRef)[NSString stringWithFormat:@"max-age=%i, public", (int)_response.cacheControlMaxAge]);
428422
} else {
429423
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Cache-Control"), CFSTR("no-cache"));
430424
}
431425
}
432426
if (_response.contentType != nil) {
433-
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Content-Type"), (ARC_BRIDGE CFStringRef)GCDWebServerNormalizeHeaderValue(_response.contentType));
427+
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Content-Type"), (__bridge CFStringRef)GCDWebServerNormalizeHeaderValue(_response.contentType));
434428
}
435429
if (_response.contentLength != NSUIntegerMax) {
436-
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Content-Length"), (ARC_BRIDGE CFStringRef)[NSString stringWithFormat:@"%lu", (unsigned long)_response.contentLength]);
430+
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Content-Length"), (__bridge CFStringRef)[NSString stringWithFormat:@"%lu", (unsigned long)_response.contentLength]);
437431
}
438432
if (_response.usesChunkedTransferEncoding) {
439433
CFHTTPMessageSetHeaderFieldValue(_responseMessage, CFSTR("Transfer-Encoding"), CFSTR("chunked"));
440434
}
441435
[_response.additionalHeaders enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL* stop) {
442-
CFHTTPMessageSetHeaderFieldValue(_responseMessage, (ARC_BRIDGE CFStringRef)key, (ARC_BRIDGE CFStringRef)obj);
436+
CFHTTPMessageSetHeaderFieldValue(_responseMessage, (__bridge CFStringRef)key, (__bridge CFStringRef)obj);
443437
}];
444438
[self _writeHeadersWithCompletionBlock:^(BOOL success) {
445439

@@ -524,7 +518,6 @@ - (void)_readChunkedBodyWithInitialData:(NSData*)initialData {
524518
}
525519

526520
}];
527-
ARC_RELEASE(chunkData);
528521
}
529522

530523
- (void)_readRequestHeaders {
@@ -533,23 +526,23 @@ - (void)_readRequestHeaders {
533526
[self _readHeaders:headersData withCompletionBlock:^(NSData* extraData) {
534527

535528
if (extraData) {
536-
NSString* requestMethod = ARC_BRIDGE_RELEASE(CFHTTPMessageCopyRequestMethod(_requestMessage)); // Method verbs are case-sensitive and uppercase
529+
NSString* requestMethod = CFBridgingRelease(CFHTTPMessageCopyRequestMethod(_requestMessage)); // Method verbs are case-sensitive and uppercase
537530
if (_server.shouldAutomaticallyMapHEADToGET && [requestMethod isEqualToString:@"HEAD"]) {
538531
requestMethod = @"GET";
539532
_virtualHEAD = YES;
540533
}
541-
NSDictionary* requestHeaders = ARC_BRIDGE_RELEASE(CFHTTPMessageCopyAllHeaderFields(_requestMessage)); // Header names are case-insensitive but CFHTTPMessageCopyAllHeaderFields() will standardize the common ones
542-
NSURL* requestURL = ARC_BRIDGE_RELEASE(CFHTTPMessageCopyRequestURL(_requestMessage));
534+
NSDictionary* requestHeaders = CFBridgingRelease(CFHTTPMessageCopyAllHeaderFields(_requestMessage)); // Header names are case-insensitive but CFHTTPMessageCopyAllHeaderFields() will standardize the common ones
535+
NSURL* requestURL = CFBridgingRelease(CFHTTPMessageCopyRequestURL(_requestMessage));
543536
if (requestURL) {
544537
requestURL = [self rewriteRequestURL:requestURL withMethod:requestMethod headers:requestHeaders];
545538
GWS_DCHECK(requestURL);
546539
}
547-
NSString* requestPath = requestURL ? GCDWebServerUnescapeURLString(ARC_BRIDGE_RELEASE(CFURLCopyPath((CFURLRef)requestURL))) : nil; // Don't use -[NSURL path] which strips the ending slash
548-
NSString* queryString = requestURL ? ARC_BRIDGE_RELEASE(CFURLCopyQueryString((CFURLRef)requestURL, NULL)) : nil; // Don't use -[NSURL query] to make sure query is not unescaped;
540+
NSString* requestPath = requestURL ? GCDWebServerUnescapeURLString(CFBridgingRelease(CFURLCopyPath((CFURLRef)requestURL))) : nil; // Don't use -[NSURL path] which strips the ending slash
541+
NSString* queryString = requestURL ? CFBridgingRelease(CFURLCopyQueryString((CFURLRef)requestURL, NULL)) : nil; // Don't use -[NSURL query] to make sure query is not unescaped;
549542
NSDictionary* requestQuery = queryString ? GCDWebServerParseURLEncodedForm(queryString) : @{};
550543
if (requestMethod && requestURL && requestHeaders && requestPath && requestQuery) {
551544
for (_handler in _server.handlers) {
552-
_request = ARC_RETAIN(_handler.matchBlock(requestMethod, requestURL, requestHeaders, requestPath, requestQuery));
545+
_request = _handler.matchBlock(requestMethod, requestURL, requestHeaders, requestPath, requestQuery);
553546
if (_request) {
554547
break;
555548
}
@@ -604,22 +597,20 @@ - (void)_readRequestHeaders {
604597
}
605598

606599
}];
607-
ARC_RELEASE(headersData);
608600
}
609601

610602
- (id)initWithServer:(GCDWebServer*)server localAddress:(NSData*)localAddress remoteAddress:(NSData*)remoteAddress socket:(CFSocketNativeHandle)socket {
611603
if ((self = [super init])) {
612-
_server = ARC_RETAIN(server);
613-
_localAddress = ARC_RETAIN(localAddress);
614-
_remoteAddress = ARC_RETAIN(remoteAddress);
604+
_server = server;
605+
_localAddress = localAddress;
606+
_remoteAddress = remoteAddress;
615607
_socket = socket;
616608
GWS_LOG_DEBUG(@"Did open connection on socket %i", _socket);
617609

618610
[_server willStartConnection:self];
619611

620612
if (![self open]) {
621613
close(_socket);
622-
ARC_RELEASE(self);
623614
return nil;
624615
}
625616
_opened = YES;
@@ -650,26 +641,14 @@ - (void)dealloc {
650641
}
651642

652643
[_server didEndConnection:self];
653-
ARC_RELEASE(_server);
654-
ARC_RELEASE(_localAddress);
655-
ARC_RELEASE(_remoteAddress);
656644

657645
if (_requestMessage) {
658646
CFRelease(_requestMessage);
659647
}
660-
ARC_RELEASE(_request);
661648

662649
if (_responseMessage) {
663650
CFRelease(_responseMessage);
664651
}
665-
ARC_RELEASE(_response);
666-
667-
#ifdef __GCDWEBSERVER_ENABLE_TESTING__
668-
ARC_RELEASE(_requestPath);
669-
ARC_RELEASE(_responsePath);
670-
#endif
671-
672-
ARC_DEALLOC(super);
673652
}
674653

675654
@end
@@ -681,11 +660,11 @@ - (BOOL)open {
681660
if (_server.recordingEnabled) {
682661
_connectionIndex = OSAtomicIncrement32(&_connectionCounter);
683662

684-
_requestPath = ARC_RETAIN([NSTemporaryDirectory() stringByAppendingPathComponent:[[NSProcessInfo processInfo] globallyUniqueString]]);
663+
_requestPath = [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSProcessInfo processInfo] globallyUniqueString]];
685664
_requestFD = open([_requestPath fileSystemRepresentation], O_CREAT | O_TRUNC | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
686665
GWS_DCHECK(_requestFD > 0);
687666

688-
_responsePath = ARC_RETAIN([NSTemporaryDirectory() stringByAppendingPathComponent:[[NSProcessInfo processInfo] globallyUniqueString]]);
667+
_responsePath = [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSProcessInfo processInfo] globallyUniqueString]];
689668
_responseFD = open([_responsePath fileSystemRepresentation], O_CREAT | O_TRUNC | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
690669
GWS_DCHECK(_responseFD > 0);
691670
}

GCDWebServer/Core/GCDWebServerFunctions.m

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2626
*/
2727

28+
#if !__has_feature(objc_arc)
29+
#error GCDWebServer requires ARC
30+
#endif
31+
2832
#import <TargetConditionals.h>
2933
#if TARGET_OS_IPHONE
3034
#import <MobileCoreServices/MobileCoreServices.h>
@@ -50,14 +54,14 @@ void GCDWebServerInitializeFunctions() {
5054
_dateFormatterRFC822 = [[NSDateFormatter alloc] init];
5155
_dateFormatterRFC822.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
5256
_dateFormatterRFC822.dateFormat = @"EEE',' dd MMM yyyy HH':'mm':'ss 'GMT'";
53-
_dateFormatterRFC822.locale = ARC_AUTORELEASE([[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]);
57+
_dateFormatterRFC822.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
5458
GWS_DCHECK(_dateFormatterRFC822);
5559
}
5660
if (_dateFormatterISO8601 == nil) {
5761
_dateFormatterISO8601 = [[NSDateFormatter alloc] init];
5862
_dateFormatterISO8601.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
5963
_dateFormatterISO8601.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss'+00:00'";
60-
_dateFormatterISO8601.locale = ARC_AUTORELEASE([[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]);
64+
_dateFormatterISO8601.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
6165
GWS_DCHECK(_dateFormatterISO8601);
6266
}
6367
if (_dateFormatterQueue == NULL) {
@@ -96,7 +100,6 @@ void GCDWebServerInitializeFunctions() {
96100
[scanner scanUpToCharactersFromSet:[NSCharacterSet whitespaceCharacterSet] intoString:&parameter];
97101
}
98102
}
99-
ARC_RELEASE(scanner);
100103
return parameter;
101104
}
102105

@@ -150,7 +153,7 @@ BOOL GCDWebServerIsTextContentType(NSString* type) {
150153
NSString* charset = GCDWebServerExtractHeaderValueParameter(type, @"charset");
151154
NSString* string = [[NSString alloc] initWithData:data encoding:GCDWebServerStringEncodingFromCharset(charset)];
152155
if (string) {
153-
return ARC_AUTORELEASE(string);
156+
return string;
154157
}
155158
}
156159
return [NSString stringWithFormat:@"<%lu bytes>", (unsigned long)data.length];
@@ -168,9 +171,9 @@ BOOL GCDWebServerIsTextContentType(NSString* type) {
168171
if (extension.length) {
169172
mimeType = [_overrides objectForKey:extension];
170173
if (mimeType == nil) {
171-
CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (ARC_BRIDGE CFStringRef)extension, NULL);
174+
CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (__bridge CFStringRef)extension, NULL);
172175
if (uti) {
173-
mimeType = ARC_BRIDGE_RELEASE(UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType));
176+
mimeType = CFBridgingRelease(UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType));
174177
CFRelease(uti);
175178
}
176179
}
@@ -179,11 +182,11 @@ BOOL GCDWebServerIsTextContentType(NSString* type) {
179182
}
180183

181184
NSString* GCDWebServerEscapeURLString(NSString* string) {
182-
return ARC_BRIDGE_RELEASE(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":@/?&=+"), kCFStringEncodingUTF8));
185+
return CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)string, NULL, CFSTR(":@/?&=+"), kCFStringEncodingUTF8));
183186
}
184187

185188
NSString* GCDWebServerUnescapeURLString(NSString* string) {
186-
return ARC_BRIDGE_RELEASE(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, (CFStringRef)string, CFSTR(""), kCFStringEncodingUTF8));
189+
return CFBridgingRelease(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, (CFStringRef)string, CFSTR(""), kCFStringEncodingUTF8));
187190
}
188191

189192
NSDictionary* GCDWebServerParseURLEncodedForm(NSString* form) {
@@ -219,7 +222,6 @@ BOOL GCDWebServerIsTextContentType(NSString* type) {
219222
}
220223
[scanner setScanLocation:([scanner scanLocation] + 1)];
221224
}
222-
ARC_RELEASE(scanner);
223225
return parameters;
224226
}
225227

@@ -247,7 +249,7 @@ BOOL GCDWebServerIsTextContentType(NSString* type) {
247249
if (store) {
248250
CFPropertyListRef info = SCDynamicStoreCopyValue(store, CFSTR("State:/Network/Global/IPv4")); // There is no equivalent for IPv6 but the primary interface should be the same
249251
if (info) {
250-
primaryInterface = [[NSString stringWithString:[(ARC_BRIDGE NSDictionary*)info objectForKey:@"PrimaryInterface"]] UTF8String];
252+
primaryInterface = [[NSString stringWithString:[(__bridge NSDictionary*)info objectForKey:@"PrimaryInterface"]] UTF8String];
251253
CFRelease(info);
252254
}
253255
CFRelease(store);
@@ -280,7 +282,7 @@ BOOL GCDWebServerIsTextContentType(NSString* type) {
280282
NSString* GCDWebServerComputeMD5Digest(NSString* format, ...) {
281283
va_list arguments;
282284
va_start(arguments, format);
283-
const char* string = [ARC_AUTORELEASE([[NSString alloc] initWithFormat:format arguments:arguments]) UTF8String];
285+
const char* string = [[[NSString alloc] initWithFormat:format arguments:arguments] UTF8String];
284286
va_end(arguments);
285287
unsigned char md5[CC_MD5_DIGEST_LENGTH];
286288
CC_MD5(string, (CC_LONG)strlen(string), md5);

0 commit comments

Comments
 (0)