summaryrefslogtreecommitdiff
path: root/tools/lz/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lz/main.c')
-rw-r--r--tools/lz/main.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/lz/main.c b/tools/lz/main.c
index 428a027f0..62e6dc413 100644
--- a/tools/lz/main.c
+++ b/tools/lz/main.c
@@ -37,13 +37,16 @@ struct command * compress (const unsigned char * data, unsigned short * size, un
} else {
struct command * compressed_sequences[COMPRESSION_METHODS];
unsigned short lengths[COMPRESSION_METHODS];
- unsigned flags = compressor -> methods;
+ unsigned flags = 0;
for (current = 0; current < COMPRESSION_METHODS; current ++) {
lengths[current] = *size;
- if (!flags) flags = (++ compressor) -> methods;
- compressed_sequences[current] = compressor -> function(data, bitflipped, lengths + current, -- flags);
+ if (flags == compressor -> methods) {
+ flags = 0;
+ compressor ++;
+ }
+ compressed_sequences[current] = compressor -> function(data, bitflipped, lengths + current, flags ++);
}
- result = select_command_sequence(compressed_sequences, lengths, COMPRESSION_METHODS, size);
+ result = select_optimal_sequence(compressed_sequences, lengths, size);
for (current = 0; current < COMPRESSION_METHODS; current ++) free(compressed_sequences[current]);
}
free(bitflipped);