226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
case OF_GZIP_STREAM_CRC32:
_bytesRead += [_stream readIntoBuffer: _buffer
length: 4 - _bytesRead];
if (_bytesRead < 4)
return 0;
if (((_buffer[3] << 24) | (_buffer[2] << 16) |
(_buffer[1] << 8) | _buffer[0]) != ~_CRC32)
@throw [OFChecksumFailedException exception];
_bytesRead = 0;
_CRC32 = ~0;
_state++;
break;
case OF_GZIP_STREAM_UNCOMPRESSED_SIZE:
_bytesRead += [_stream readIntoBuffer: _buffer
length: 4 - _bytesRead];
if (((_buffer[3] << 24) | (_buffer[2] << 16) |
(_buffer[1] << 8) | _buffer[0]) !=
_uncompressedSize)
@throw [OFChecksumFailedException exception];
_bytesRead = 0;
_uncompressedSize = 0;
_state = OF_GZIP_STREAM_ID1;
|
|
|
|
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
case OF_GZIP_STREAM_CRC32:
_bytesRead += [_stream readIntoBuffer: _buffer
length: 4 - _bytesRead];
if (_bytesRead < 4)
return 0;
if ((((uint32_t)_buffer[3] << 24) | (_buffer[2] << 16) |
(_buffer[1] << 8) | _buffer[0]) != ~_CRC32)
@throw [OFChecksumFailedException exception];
_bytesRead = 0;
_CRC32 = ~0;
_state++;
break;
case OF_GZIP_STREAM_UNCOMPRESSED_SIZE:
_bytesRead += [_stream readIntoBuffer: _buffer
length: 4 - _bytesRead];
if ((((uint32_t)_buffer[3] << 24) | (_buffer[2] << 16) |
(_buffer[1] << 8) | _buffer[0]) !=
_uncompressedSize)
@throw [OFChecksumFailedException exception];
_bytesRead = 0;
_uncompressedSize = 0;
_state = OF_GZIP_STREAM_ID1;
|