@@ -155,8 +155,7 @@ NETWORK_RESULT network_receive_buffer(network_data *data, const char *endpoint,
155155
156156 NSURLSession *session = [NSURLSession sharedSession ];
157157 NSURLSessionDataTask *task = [session dataTaskWithRequest: request completionHandler: ^(NSData *data, NSURLResponse *response, NSError *error) {
158- // Retain data to not get it deallocated, release it before returning
159- responseData = [data retain ];
158+ responseData = data;
160159 if (error) {
161160 responseError = [error localizedDescription ];
162161 errorCode = [error code ];
@@ -171,10 +170,8 @@ NETWORK_RESULT network_receive_buffer(network_data *data, const char *endpoint,
171170 dispatch_semaphore_wait (sema, DISPATCH_TIME_FOREVER);
172171
173172 if (!responseError && (statusCode >= 200 && statusCode < 300 )) {
174- size_t len = [responseData length ];
175173 // check if OK should be returned
176- if (len == 0 ) {
177- [responseData release ];
174+ if (responseData == nil || [responseData length ] == 0 ) {
178175 return (NETWORK_RESULT){CLOUDSYNC_NETWORK_OK, NULL , 0 , NULL , NULL };
179176 }
180177
@@ -189,10 +186,9 @@ NETWORK_RESULT network_receive_buffer(network_data *data, const char *endpoint,
189186 result.buffer = (char *)responseData.bytes ;
190187 result.xdata = (void *)CFBridgingRetain (responseData);
191188 }
192- result.blen = len ;
189+ result.blen = [responseData length ] ;
193190 result.xfree = network_buffer_cleanup;
194191
195- [responseData release ];
196192 return result;
197193 }
198194
@@ -216,6 +212,5 @@ NETWORK_RESULT network_receive_buffer(network_data *data, const char *endpoint,
216212 result.xfree = network_buffer_cleanup;
217213 result.blen = responseError ? (size_t )errorCode : (size_t )statusCode;
218214
219- [responseData release ];
220215 return result;
221216}
0 commit comments