431
432
433
434
435
436
437
438
439
440
441
442
443
444
|
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
|
+
+
+
|
- (OFStream *)streamForReadingFile: (OFString *)path
{
void *pool = objc_autoreleasePoolPush();
OFZIPArchiveEntry *entry;
OFZIPArchiveLocalFileHeader *localFileHeader;
int64_t offset64;
if (_stream == nil)
@throw [OFNotOpenException exceptionWithObject: self];
if (_mode != modeRead)
@throw [OFInvalidArgumentException exception];
if ((entry = [_pathToEntryMap objectForKey: path]) == nil)
@throw [OFOpenItemFailedException exceptionWithPath: path
mode: @"r"
errNo: ENOENT];
|
481
482
483
484
485
486
487
488
489
490
491
492
493
494
|
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
|
+
+
+
|
int64_t offsetAdd = 0;
void *pool;
OFMutableZIPArchiveEntry *entry;
OFString *fileName;
OFData *extraField;
uint16_t fileNameLength, extraFieldLength;
if (_stream == nil)
@throw [OFNotOpenException exceptionWithObject: self];
if (_mode != modeWrite && _mode != modeAppend)
@throw [OFInvalidArgumentException exception];
pool = objc_autoreleasePoolPush();
entry = [[entry_ mutableCopy] autorelease];
if ([_pathToEntryMap objectForKey: entry.fileName] != nil)
|