@@ -22,11 +22,11 @@ #include #include #include -#ifndef INFLATE64 +#ifndef OF_INFLATE64_STREAM_M # import "OFInflateStream.h" #else # import "OFInflate64Stream.h" # define OFInflateStream OFInflate64Stream #endif @@ -36,11 +36,15 @@ #import "OFInitializationFailedException.h" #import "OFInvalidFormatException.h" #import "OFNotOpenException.h" #import "OFOutOfMemoryException.h" -#define BUFFER_SIZE OF_INFLATE_STREAM_BUFFER_SIZE +#ifndef OF_INFLATE64_STREAM_M +# define BUFFER_SIZE OF_INFLATE_STREAM_BUFFER_SIZE +#else +# define BUFFER_SIZE OF_INFLATE64_STREAM_BUFFER_SIZE +#endif enum state { BLOCK_HEADER, UNCOMPRESSED_BLOCK_HEADER, UNCOMPRESSED_BLOCK, @@ -55,11 +59,11 @@ AWAIT_DISTANCE, AWAIT_DISTANCE_EXTRA_BITS, PROCESS_PAIR }; -#ifndef INFLATE64 +#ifndef OF_INFLATE64_STREAM_M static const uint8_t numDistanceCodes = 30; static const uint8_t lengthCodes[29] = { /* indices are -257, values -3 */ 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 255 @@ -166,11 +170,10 @@ lengths[i] = 5; fixedDistTree = of_huffman_tree_construct(lengths, 32); } -#ifndef INFLATE64 + (instancetype)streamWithStream: (OFStream *)stream { return [[[self alloc] initWithStream: stream] autorelease]; } @@ -187,11 +190,11 @@ _stream = [stream retain]; /* 0-7 address the bit, 8 means fetch next byte */ _bitIndex = 8; -#ifdef INFLATE64 +#ifdef OF_INFLATE64_STREAM_M _slidingWindowMask = 0xFFFF; #else _slidingWindowMask = 0x7FFF; #endif _slidingWindow = [self allocZeroedMemoryWithSize: @@ -220,11 +223,10 @@ of_huffman_tree_release(_context.huffman.distTree); } [super dealloc]; } -#endif - (size_t)lowlevelReadIntoBuffer: (void *)buffer_ length: (size_t)length { unsigned char *buffer = buffer_; @@ -654,11 +656,10 @@ } OF_UNREACHABLE } -#ifndef INFLATE64 - (bool)lowlevelIsAtEndOfStream { if (_stream == nil) @throw [OFNotOpenException exceptionWithObject: self]; @@ -672,11 +673,10 @@ - (bool)hasDataInReadBuffer { return ([super hasDataInReadBuffer] || [_stream hasDataInReadBuffer]); } -#endif - (void)close { /* Give back our buffer to the stream, in case it's shared */ [_stream unreadFromBuffer: _buffer + _bufferIndex