Changeset 1993 for xz/vendor/current/src/liblzma/common/block_encoder.c
- Timestamp:
- Feb 8, 2017, 8:58:22 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified xz/vendor/current/src/liblzma/common/block_encoder.c ¶
r1791 r1993 16 16 17 17 18 struct lzma_coder_s{18 typedef struct { 19 19 /// The filters in the chain; initialized with lzma_raw_decoder_init(). 20 20 lzma_next_coder next; … … 42 42 /// Check of the uncompressed data 43 43 lzma_check_state check; 44 } ;44 } lzma_block_coder; 45 45 46 46 47 47 static lzma_ret 48 block_encode( lzma_coder *coder, const lzma_allocator *allocator,48 block_encode(void *coder_ptr, const lzma_allocator *allocator, 49 49 const uint8_t *restrict in, size_t *restrict in_pos, 50 50 size_t in_size, uint8_t *restrict out, 51 51 size_t *restrict out_pos, size_t out_size, lzma_action action) 52 52 { 53 lzma_block_coder *coder = coder_ptr; 54 53 55 // Check that our amount of input stays in proper limits. 54 56 if (LZMA_VLI_MAX - coder->uncompressed_size < in_size - *in_pos) … … 135 137 136 138 static void 137 block_encoder_end(lzma_coder *coder, const lzma_allocator *allocator) 138 { 139 block_encoder_end(void *coder_ptr, const lzma_allocator *allocator) 140 { 141 lzma_block_coder *coder = coder_ptr; 139 142 lzma_next_end(&coder->next, allocator); 140 143 lzma_free(coder, allocator); … … 144 147 145 148 static lzma_ret 146 block_encoder_update( lzma_coder *coder, const lzma_allocator *allocator,149 block_encoder_update(void *coder_ptr, const lzma_allocator *allocator, 147 150 const lzma_filter *filters lzma_attribute((__unused__)), 148 151 const lzma_filter *reversed_filters) 149 152 { 153 lzma_block_coder *coder = coder_ptr; 154 150 155 if (coder->sequence != SEQ_CODE) 151 156 return LZMA_PROG_ERROR; … … 179 184 180 185 // Allocate and initialize *next->coder if needed. 181 if (next->coder == NULL) { 182 next->coder = lzma_alloc(sizeof(lzma_coder), allocator); 183 if (next->coder == NULL) 186 lzma_block_coder *coder = next->coder; 187 if (coder == NULL) { 188 coder = lzma_alloc(sizeof(lzma_block_coder), allocator); 189 if (coder == NULL) 184 190 return LZMA_MEM_ERROR; 185 191 192 next->coder = coder; 186 193 next->code = &block_encode; 187 194 next->end = &block_encoder_end; 188 195 next->update = &block_encoder_update; 189 next->coder->next = LZMA_NEXT_CODER_INIT;196 coder->next = LZMA_NEXT_CODER_INIT; 190 197 } 191 198 192 199 // Basic initializations 193 next->coder->sequence = SEQ_CODE;194 next->coder->block = block;195 next->coder->compressed_size = 0;196 next->coder->uncompressed_size = 0;197 next->coder->pos = 0;200 coder->sequence = SEQ_CODE; 201 coder->block = block; 202 coder->compressed_size = 0; 203 coder->uncompressed_size = 0; 204 coder->pos = 0; 198 205 199 206 // Initialize the check 200 lzma_check_init(& next->coder->check, block->check);207 lzma_check_init(&coder->check, block->check); 201 208 202 209 // Initialize the requested filters. 203 return lzma_raw_encoder_init(&next->coder->next, allocator, 204 block->filters); 210 return lzma_raw_encoder_init(&coder->next, allocator, block->filters); 205 211 } 206 212
Note:
See TracChangeset
for help on using the changeset viewer.