auto_decoder.c   auto_decoder.c 
skipping to change at line 31 skipping to change at line 31
uint32_t flags; uint32_t flags;
enum { enum {
SEQ_INIT, SEQ_INIT,
SEQ_CODE, SEQ_CODE,
SEQ_FINISH, SEQ_FINISH,
} sequence; } sequence;
}; };
static lzma_ret static lzma_ret
auto_decode(lzma_coder *coder, lzma_allocator *allocator, auto_decode(lzma_coder *coder, const lzma_allocator *allocator,
const uint8_t *restrict in, size_t *restrict in_pos, const uint8_t *restrict in, size_t *restrict in_pos,
size_t in_size, uint8_t *restrict out, size_t in_size, uint8_t *restrict out,
size_t *restrict out_pos, size_t out_size, lzma_action actio n) size_t *restrict out_pos, size_t out_size, lzma_action actio n)
{ {
switch (coder->sequence) { switch (coder->sequence) {
case SEQ_INIT: case SEQ_INIT:
if (*in_pos >= in_size) if (*in_pos >= in_size)
return LZMA_OK; return LZMA_OK;
// Update the sequence now, because we want to continue from // Update the sequence now, because we want to continue from
skipping to change at line 55 skipping to change at line 55
// Detect the file format. For now this is simple, since if // Detect the file format. For now this is simple, since if
// it doesn't start with 0xFD (the first magic byte of the // it doesn't start with 0xFD (the first magic byte of the
// new format), it has to be LZMA_Alone, or something that // new format), it has to be LZMA_Alone, or something that
// we don't support at all. // we don't support at all.
if (in[*in_pos] == 0xFD) { if (in[*in_pos] == 0xFD) {
return_if_error(lzma_stream_decoder_init( return_if_error(lzma_stream_decoder_init(
&coder->next, allocator, &coder->next, allocator,
coder->memlimit, coder->flags)); coder->memlimit, coder->flags));
} else { } else {
return_if_error(lzma_alone_decoder_init(&coder->next , return_if_error(lzma_alone_decoder_init(&coder->next ,
allocator, coder->memlimit)); allocator, coder->memlimit, true));
// If the application wants to know about missing // If the application wants to know about missing
// integrity check or about the check in general, we // integrity check or about the check in general, we
// need to handle it here, because LZMA_Alone decode r // need to handle it here, because LZMA_Alone decode r
// doesn't accept any flags. // doesn't accept any flags.
if (coder->flags & LZMA_TELL_NO_CHECK) if (coder->flags & LZMA_TELL_NO_CHECK)
return LZMA_NO_CHECK; return LZMA_NO_CHECK;
if (coder->flags & LZMA_TELL_ANY_CHECK) if (coder->flags & LZMA_TELL_ANY_CHECK)
return LZMA_GET_CHECK; return LZMA_GET_CHECK;
skipping to change at line 100 skipping to change at line 100
return action == LZMA_FINISH ? LZMA_STREAM_END : LZMA_OK; return action == LZMA_FINISH ? LZMA_STREAM_END : LZMA_OK;
default: default:
assert(0); assert(0);
return LZMA_PROG_ERROR; return LZMA_PROG_ERROR;
} }
} }
static void static void
auto_decoder_end(lzma_coder *coder, lzma_allocator *allocator) auto_decoder_end(lzma_coder *coder, const lzma_allocator *allocator)
{ {
lzma_next_end(&coder->next, allocator); lzma_next_end(&coder->next, allocator);
lzma_free(coder, allocator); lzma_free(coder, allocator);
return; return;
} }
static lzma_check static lzma_check
auto_decoder_get_check(const lzma_coder *coder) auto_decoder_get_check(const lzma_coder *coder)
{ {
// It is LZMA_Alone if get_check is NULL. // It is LZMA_Alone if get_check is NULL.
skipping to change at line 140 skipping to change at line 140
ret = LZMA_OK; ret = LZMA_OK;
} }
if (ret == LZMA_OK && new_memlimit != 0) if (ret == LZMA_OK && new_memlimit != 0)
coder->memlimit = new_memlimit; coder->memlimit = new_memlimit;
return ret; return ret;
} }
static lzma_ret static lzma_ret
auto_decoder_init(lzma_next_coder *next, lzma_allocator *allocator, auto_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator,
uint64_t memlimit, uint32_t flags) uint64_t memlimit, uint32_t flags)
{ {
lzma_next_coder_init(&auto_decoder_init, next, allocator); lzma_next_coder_init(&auto_decoder_init, next, allocator);
if (memlimit == 0) if (memlimit == 0)
return LZMA_PROG_ERROR; return LZMA_PROG_ERROR;
if (flags & ~LZMA_SUPPORTED_FLAGS) if (flags & ~LZMA_SUPPORTED_FLAGS)
return LZMA_OPTIONS_ERROR; return LZMA_OPTIONS_ERROR;
 End of changes. 4 change blocks. 
4 lines changed or deleted 4 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/