Overview
Comment: | Fix -[OFBigDataArray initWithContentsOfURL:] |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
dc83295447c0e757792413391cd7f6ef |
User & Date: | js on 2014-09-10 14:05:01 |
Other Links: | manifest | tags |
Context
2014-09-10
| ||
14:05 | Add OFBigDataArray.h to ObjFW.h check-in: 27902a926c user: js tags: trunk | |
14:05 | Fix -[OFBigDataArray initWithContentsOfURL:] check-in: dc83295447 user: js tags: trunk | |
10:51 | OFZIP: Handle all exceptions check-in: 8b7fd2fdd8 user: js tags: trunk | |
Changes
Modified src/OFDataArray.m from [41037dbb74] to [0c152683c1].
︙ | ︙ | |||
186 187 188 189 190 191 192 | } #endif - initWithContentsOfURL: (OFURL*)URL { void *pool; OFString *scheme; | < < < < < | > > > | > > | > > | | | > > > > > > > | 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 | } #endif - initWithContentsOfURL: (OFURL*)URL { void *pool; OFString *scheme; pool = objc_autoreleasePoolPush(); scheme = [URL scheme]; #ifdef OF_HAVE_FILES if ([scheme isEqual: @"file"]) self = [self initWithContentsOfFile: [URL path]]; else #endif #ifdef OF_HAVE_SOCKETS if ([scheme isEqual: @"http"] || [scheme isEqual: @"https"]) { OFHTTPClient *client = [OFHTTPClient client]; OFHTTPRequest *request = [OFHTTPRequest requestWithURL: URL]; OFHTTPResponse *response = [client performRequest: request]; size_t pageSize; char *buffer; OFDictionary *headers; OFString *contentLength; if ([response statusCode] != 200) @throw [OFHTTPRequestFailedException exceptionWithRequest: request response: response]; self = [self init]; pageSize = [OFSystemInfo pageSize]; buffer = [self allocMemoryWithSize: pageSize]; @try { while (![response isAtEndOfStream]) { size_t length; length = [response readIntoBuffer: buffer length: pageSize]; [self addItems: buffer count: length]; } } @finally { [self freeMemory: buffer]; } headers = [response headers]; if ((contentLength = [headers objectForKey: @"Content-Length"]) != nil) if ([self count] != (size_t)[contentLength decimalValue]) @throw [OFTruncatedDataException exception]; |
︙ | ︙ |