ObjFW  Check-in [85c16c3a42]

Overview
Comment:OFZIPArchive_FileStream: Add _closed ivar
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 85c16c3a427b254898355207f45b0dc9e5ddb3979e786b8412ad757a3f4816c9
User & Date: js on 2015-05-10 21:48:46
Other Links: manifest | tags
Context
2015-05-14
09:10
initWithContentsOfURL: Require files or sockets check-in: dbe286c39f user: js tags: trunk
2015-05-10
21:48
OFZIPArchive_FileStream: Add _closed ivar check-in: 85c16c3a42 user: js tags: trunk
00:42
PLATFORMS.md: Add NetBSD/SPARC64 check-in: e591d17419 user: js tags: trunk
Changes

Modified src/OFZIPArchive.m from [6109b2512a] to [d48f1a83ef].

71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
@interface OFZIPArchive_FileStream: OFStream
{
	OFStream *_stream, *_decompressedStream;
	OFZIPArchive_LocalFileHeader *_localFileHeader;
	bool _hasDataDescriptor;
	uint64_t _size;
	uint32_t _CRC32;
	bool _atEndOfStream;
}

-  initWithStream: (OFStream*)path
  localFileHeader: (OFZIPArchive_LocalFileHeader*)localFileHeader;
@end

uint32_t







|







71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
@interface OFZIPArchive_FileStream: OFStream
{
	OFStream *_stream, *_decompressedStream;
	OFZIPArchive_LocalFileHeader *_localFileHeader;
	bool _hasDataDescriptor;
	uint64_t _size;
	uint32_t _CRC32;
	bool _atEndOfStream, _closed;
}

-  initWithStream: (OFStream*)path
  localFileHeader: (OFZIPArchive_LocalFileHeader*)localFileHeader;
@end

uint32_t
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
}

- (size_t)lowlevelReadIntoBuffer: (void*)buffer
			  length: (size_t)length
{
	size_t min, ret;

	if (_atEndOfStream)
		@throw [OFReadFailedException exceptionWithObject: self
						  requestedLength: length];

	if (_hasDataDescriptor) {
		if ([_decompressedStream isAtEndOfStream]) {
			uint32_t CRC32;








|







521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
}

- (size_t)lowlevelReadIntoBuffer: (void*)buffer
			  length: (size_t)length
{
	size_t min, ret;

	if (_atEndOfStream || _closed)
		@throw [OFReadFailedException exceptionWithObject: self
						  requestedLength: length];

	if (_hasDataDescriptor) {
		if ([_decompressedStream isAtEndOfStream]) {
			uint32_t CRC32;

571
572
573
574
575
576
577
578
579
580
	_CRC32 = crc32(_CRC32, buffer, ret);

	return ret;
}

- (void)close
{
	_atEndOfStream = true;
}
@end







|


571
572
573
574
575
576
577
578
579
580
	_CRC32 = crc32(_CRC32, buffer, ret);

	return ret;
}

- (void)close
{
	_closed = true;
}
@end