103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
/* 0-7 address the bit, 8 means fetch next byte */
_bitIndex = 8;
_distanceBits = distanceBits;
_dictionaryBits = dictionaryBits;
_slidingWindowMask = (1 << dictionaryBits) - 1;
_slidingWindow = [self allocMemoryWithSize:
_slidingWindowMask + 1];
memset(_slidingWindow, ' ', _slidingWindowMask + 1);
} @catch (id e) {
[self release];
@throw e;
}
|
|
|
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
/* 0-7 address the bit, 8 means fetch next byte */
_bitIndex = 8;
_distanceBits = distanceBits;
_dictionaryBits = dictionaryBits;
_slidingWindowMask = (1u << dictionaryBits) - 1;
_slidingWindow = [self allocMemoryWithSize:
_slidingWindowMask + 1];
memset(_slidingWindow, ' ', _slidingWindowMask + 1);
} @catch (id e) {
[self release];
@throw e;
}
|
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
|
? STATE_BLOCK_LEN_DIST_PAIR
: STATE_BLOCK_DIST_LENGTH_EXTRA);
goto start;
case STATE_BLOCK_DIST_LENGTH_EXTRA:
if OF_UNLIKELY (!tryReadBits(self, &bits, _distance - 1))
return bytesWritten;
_distance = bits + (1 << (_distance - 1));
_state = STATE_BLOCK_LEN_DIST_PAIR;
goto start;
case STATE_BLOCK_LEN_DIST_PAIR:
for (uint_fast16_t i = 0; i < _length; i++) {
uint32_t idx;
|
|
|
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
|
? STATE_BLOCK_LEN_DIST_PAIR
: STATE_BLOCK_DIST_LENGTH_EXTRA);
goto start;
case STATE_BLOCK_DIST_LENGTH_EXTRA:
if OF_UNLIKELY (!tryReadBits(self, &bits, _distance - 1))
return bytesWritten;
_distance = bits + (1u << (_distance - 1));
_state = STATE_BLOCK_LEN_DIST_PAIR;
goto start;
case STATE_BLOCK_LEN_DIST_PAIR:
for (uint_fast16_t i = 0; i < _length; i++) {
uint32_t idx;
|