14#ifndef LZMA_LZ_DECODER_H
15#define LZMA_LZ_DECODER_H
49 const uint8_t *preset_dict;
50 size_t preset_dict_size;
63 void (*reset)(
void *coder,
const void *
options);
76#define LZMA_LZ_DECODER_INIT \
81 .set_uncompressed = NULL, \
103dict_get(
const lzma_dict *
const dict,
const uint32_t distance)
105 return dict->buf[
dict->pos - distance - 1
106 + (distance <
dict->pos ? 0 :
dict->size)];
114 return dict->full == 0;
120dict_is_distance_valid(
const lzma_dict *
const dict,
const size_t distance)
122 return dict->full > distance;
131 const size_t dict_avail =
dict->limit -
dict->pos;
138 if (distance <
left) {
144 }
while (--
left > 0);
146 }
else if (distance < dict->pos) {
149 dict->buf +
dict->pos - distance - 1,
158 const uint32_t copy_pos
159 =
dict->pos - distance - 1 +
dict->size;
160 uint32_t copy_size =
dict->size - copy_pos;
162 if (copy_size <
left) {
165 dict->pos += copy_size;
166 copy_size =
left - copy_size;
168 dict->pos += copy_size;
203dict_write(
lzma_dict *restrict
dict,
const uint8_t *restrict in,
205 size_t *restrict
left)
230 dict->need_reset =
true;
#define assert(condition)
Definition lz4.c:273
#define unlikely(expr)
Definition lz4.c:180
char buf[N_BUF]
Definition spewG.c:36
Custom functions for memory handling.
Definition base.h:372
Definition lz_decoder.h:20
Definition lz_decoder.h:54
Definition lz_decoder.h:47
Hold data and function pointers of the next filter in the chain.
Definition common.h:195
size_t * left
Definition util.h:104
lzma_ret
Return values used by several functions in liblzma.
Definition base.h:57
const lzma_allocator const uint8_t size_t * in_pos
Definition block.h:579
const lzma_allocator const uint8_t size_t in_size
Definition block.h:527
const lzma_allocator const uint8_t * in
Definition block.h:527
const lzma_allocator * allocator
Definition block.h:377
const lzma_filter * filters
Definition container.h:315
uint64_t lzma_vli
Variable-length integer type.
Definition vli.h:63
#define my_min(x, y)
Definition sysdefs.h:185
uint64_t uint64_t lzma_bool uint32_t dict_size
Definition container.h:904
const lzma_options_lzma * options
Definition container.h:545
size_t lzma_bufcpy(const uint8_t *restrict in, size_t *restrict in_pos, size_t in_size, uint8_t *restrict out, size_t *restrict out_pos, size_t out_size)
Definition common.c:94
static uint32_t const uint8_t uint32_t len
Definition memcmplen.h:44
static uint32_t const uint8_t uint32_t uint32_t limit
Definition memcmplen.h:45
uint64_t lzma_lz_decoder_memusage(size_t dictionary_size)
Definition lz_decoder.c:301
lzma_ret lzma_lz_decoder_init(lzma_next_coder *next, const lzma_allocator *allocator, const lzma_filter_info *filters, lzma_ret(*lz_init)(lzma_lz_decoder *lz, const lzma_allocator *allocator, lzma_vli id, const void *options, lzma_lz_options *lz_options))
Definition lz_decoder.c:212
uint64_t uncompressed_size
Definition list.c:209
const void * dict
Definition zbuff.h:76