@@ -106,15 +106,14 @@ static bool tryReadBits(OFInflateStream *stream, uint16_t *bits, uint8_t count) { uint16_t ret = stream->_savedBits; - uint8_t i; assert(stream->_savedBitsLength < count); - for (i = stream->_savedBitsLength; i < count; i++) { + for (uint8_t i = stream->_savedBitsLength; i < count; i++) { if OF_UNLIKELY (stream->_bitIndex == 8) { if (stream->_bufferIndex < stream->_bufferLength) stream->_byte = stream->_buffer[stream->_bufferIndex++]; else { @@ -184,13 +183,12 @@ constructTree(uint8_t lengths[], uint16_t count) { struct huffman_tree *tree; uint16_t lengthCount[MAX_BITS + 1] = { 0 }; uint16_t code, maxCode = 0, nextCode[MAX_BITS + 1]; - uint16_t i; - for (i = 0; i < count; i++) { + for (uint16_t i = 0; i < count; i++) { uint8_t length = lengths[i]; if OF_UNLIKELY (length > MAX_BITS) @throw [OFInvalidFormatException exception]; @@ -199,18 +197,18 @@ maxCode = i; } } code = 0; - for (i = 1; i <= MAX_BITS; i++) { + for (size_t i = 1; i <= MAX_BITS; i++) { code = (code + lengthCount[i - 1]) << 1; nextCode[i] = code; } tree = newTree(); - for (i = 0; i <= maxCode; i++) { + for (uint16_t i = 0; i <= maxCode; i++) { uint8_t length = lengths[i]; if (length > 0) treeInsert(tree, nextCode[length]++, length, i); } @@ -241,40 +239,37 @@ } static void releaseTree(struct huffman_tree *tree) { - uint8_t i; - - for (i = 0; i < 2; i++) + for (uint8_t i = 0; i < 2; i++) if OF_LIKELY (tree->leafs[i] != NULL) releaseTree(tree->leafs[i]); free(tree); } @implementation OFInflateStream + (void)initialize { - uint16_t i; uint8_t lengths[288]; if (self != [OFInflateStream class]) return; - for (i = 0; i <= 143; i++) + for (uint16_t i = 0; i <= 143; i++) lengths[i] = 8; - for (i = 144; i <= 255; i++) + for (uint16_t i = 144; i <= 255; i++) lengths[i] = 9; - for (i = 256; i <= 279; i++) + for (uint16_t i = 256; i <= 279; i++) lengths[i] = 7; - for (i = 280; i <= 287; i++) + for (uint16_t i = 280; i <= 287; i++) lengths[i] = 8; fixedLitLenTree = constructTree(lengths, 288); - for (i = 0; i <= 31; i++) + for (uint16_t i = 0; i <= 31; i++) lengths[i] = 5; fixedDistTree = constructTree(lengths, 32); } @@ -310,11 +305,11 @@ - (size_t)lowlevelReadIntoBuffer: (void*)buffer_ length: (size_t)length { uint8_t *buffer = buffer_; - uint16_t bits, i, tmp; + uint16_t bits, tmp; uint16_t value; size_t bytesWritten = 0; uint8_t *slidingWindow; uint16_t slidingWindowIndex; @@ -415,11 +410,11 @@ memset(_slidingWindow, 0, _slidingWindowMask + 1); } slidingWindow = _slidingWindow; slidingWindowIndex = _slidingWindowIndex; - for (i = 0; i < tmp; i++) { + for (uint16_t i = 0; i < tmp; i++) { slidingWindow[slidingWindowIndex] = buffer[bytesWritten + i]; slidingWindowIndex = (slidingWindowIndex + 1) & _slidingWindowMask; } @@ -465,11 +460,11 @@ if OF_LIKELY (CTX.lengths == NULL) { CTX.lengths = [self allocMemoryWithSize: 19]; memset(CTX.lengths, 0, 19); } - for (i = CTX.receivedCount; + for (uint16_t i = CTX.receivedCount; i < CTX.codeLenCodesCount + 4; i++) { if OF_UNLIKELY (!tryReadBits(self, &bits, 3)) { CTX.receivedCount = i; return bytesWritten; } @@ -488,11 +483,11 @@ if OF_LIKELY (CTX.lengths == NULL) CTX.lengths = [self allocMemoryWithSize: CTX.litLenCodesCount + CTX.distCodesCount + 258]; - for (i = CTX.receivedCount; + for (uint16_t i = CTX.receivedCount; i < CTX.litLenCodesCount + CTX.distCodesCount + 258;) { uint8_t j, count; if OF_LIKELY (CTX.value == 0xFF) { if OF_UNLIKELY (!walkTree(self, &CTX.treeIter,