Lines Matching refs:coder

55 lz_decoder_reset(lzma_coder *coder)  in lz_decoder_reset()  argument
57 coder->dict.pos = 0; in lz_decoder_reset()
58 coder->dict.full = 0; in lz_decoder_reset()
59 coder->dict.buf[coder->dict.size - 1] = '\0'; in lz_decoder_reset()
60 coder->dict.need_reset = false; in lz_decoder_reset()
66 decode_buffer(lzma_coder *coder, in decode_buffer() argument
73 if (coder->dict.pos == coder->dict.size) in decode_buffer()
74 coder->dict.pos = 0; in decode_buffer()
78 const size_t dict_start = coder->dict.pos; in decode_buffer()
84 coder->dict.limit = coder->dict.pos in decode_buffer()
86 coder->dict.size - coder->dict.pos); in decode_buffer()
89 const lzma_ret ret = coder->lz.code( in decode_buffer()
90 coder->lz.coder, &coder->dict, in decode_buffer()
95 const size_t copy_size = coder->dict.pos - dict_start; in decode_buffer()
97 memcpy(out + *out_pos, coder->dict.buf + dict_start, in decode_buffer()
102 if (coder->dict.need_reset) { in decode_buffer()
103 lz_decoder_reset(coder); in decode_buffer()
120 || coder->dict.pos < coder->dict.size) in decode_buffer()
135 lzma_coder *coder = coder_ptr; in lz_decode() local
137 if (coder->next.code == NULL) in lz_decode()
138 return decode_buffer(coder, in, in_pos, in_size, in lz_decode()
145 if (!coder->next_finished in lz_decode()
146 && coder->temp.pos == coder->temp.size) { in lz_decode()
147 coder->temp.pos = 0; in lz_decode()
148 coder->temp.size = 0; in lz_decode()
150 const lzma_ret ret = coder->next.code( in lz_decode()
151 coder->next.coder, in lz_decode()
153 coder->temp.buffer, &coder->temp.size, in lz_decode()
157 coder->next_finished = true; in lz_decode()
158 else if (ret != LZMA_OK || coder->temp.size == 0) in lz_decode()
162 if (coder->this_finished) { in lz_decode()
163 if (coder->temp.size != 0) in lz_decode()
166 if (coder->next_finished) in lz_decode()
172 const lzma_ret ret = decode_buffer(coder, coder->temp.buffer, in lz_decode()
173 &coder->temp.pos, coder->temp.size, in lz_decode()
177 coder->this_finished = true; in lz_decode()
180 else if (coder->next_finished && *out_pos < out_size) in lz_decode()
191 lzma_coder *coder = coder_ptr; in lz_decoder_end() local
193 lzma_next_end(&coder->next, allocator); in lz_decoder_end()
194 lzma_free(coder->dict.buf, allocator); in lz_decoder_end()
196 if (coder->lz.end != NULL) in lz_decoder_end()
197 coder->lz.end(coder->lz.coder, allocator); in lz_decoder_end()
199 lzma_free(coder->lz.coder, allocator); in lz_decoder_end()
201 lzma_free(coder, allocator); in lz_decoder_end()
214 lzma_coder *coder = next->coder; in lzma_lz_decoder_init() local
215 if (coder == NULL) { in lzma_lz_decoder_init()
216 coder = lzma_alloc(sizeof(lzma_coder), allocator); in lzma_lz_decoder_init()
217 if (coder == NULL) in lzma_lz_decoder_init()
220 next->coder = coder; in lzma_lz_decoder_init()
224 coder->dict.buf = NULL; in lzma_lz_decoder_init()
225 coder->dict.size = 0; in lzma_lz_decoder_init()
226 coder->lz = LZMA_LZ_DECODER_INIT; in lzma_lz_decoder_init()
227 coder->next = LZMA_NEXT_CODER_INIT; in lzma_lz_decoder_init()
233 return_if_error(lz_init(&coder->lz, allocator, in lzma_lz_decoder_init()
257 if (coder->dict.size != lz_options.dict_size) { in lzma_lz_decoder_init()
258 lzma_free(coder->dict.buf, allocator); in lzma_lz_decoder_init()
259 coder->dict.buf in lzma_lz_decoder_init()
261 if (coder->dict.buf == NULL) in lzma_lz_decoder_init()
264 coder->dict.size = lz_options.dict_size; in lzma_lz_decoder_init()
267 lz_decoder_reset(next->coder); in lzma_lz_decoder_init()
277 memcpy(coder->dict.buf, lz_options.preset_dict + offset, in lzma_lz_decoder_init()
279 coder->dict.pos = copy_size; in lzma_lz_decoder_init()
280 coder->dict.full = copy_size; in lzma_lz_decoder_init()
284 coder->next_finished = false; in lzma_lz_decoder_init()
285 coder->this_finished = false; in lzma_lz_decoder_init()
286 coder->temp.pos = 0; in lzma_lz_decoder_init()
287 coder->temp.size = 0; in lzma_lz_decoder_init()
290 return lzma_next_filter_init(&coder->next, allocator, filters + 1); in lzma_lz_decoder_init()
304 lzma_coder *coder = coder_ptr; in lzma_lz_decoder_uncompressed() local
305 coder->lz.set_uncompressed(coder->lz.coder, uncompressed_size); in lzma_lz_decoder_uncompressed()