]> wimlib.net Git - wimlib/blobdiff - src/xpress_compress.c
Fix various typos
[wimlib] / src / xpress_compress.c
index ba7a9af7272ecb3510d6a6ab04e7fec0319dd3cd..7ebff8766339862de7f31aaabc8f99589fe3c7f8 100644 (file)
@@ -212,7 +212,7 @@ struct xpress_output_bitstream {
        /* Pointer to the start of the output buffer.  */
        u8 *start;
 
-       /* Pointer to the location in the ouput buffer at which to write the
+       /* Pointer to the location in the output buffer at which to write the
         * next 16 bits.  */
        u8 *next_bits;
 
@@ -907,7 +907,7 @@ xpress_find_matches(struct xpress_compressor * restrict c,
        const u8 * const in_begin = in;
        const u8 *in_next = in_begin;
        struct lz_match *cache_ptr = c->match_cache;
-       u32 next_hash = 0;
+       u32 next_hashes[2] = {};
        u32 max_len = in_nbytes;
        u32 nice_len = min(max_len, c->nice_match_length);
 
@@ -920,7 +920,8 @@ xpress_find_matches(struct xpress_compressor * restrict c,
                /* If we've found so many matches that the cache might overflow
                 * if we keep finding more, then stop finding matches.  This
                 * case is very unlikely.  */
-               if (unlikely(cache_ptr >= c->cache_overflow_mark || max_len < 5))
+               if (unlikely(cache_ptr >= c->cache_overflow_mark ||
+                            max_len < BT_MATCHFINDER_REQUIRED_NBYTES))
                        break;
 
                matches = cache_ptr;
@@ -935,7 +936,7 @@ xpress_find_matches(struct xpress_compressor * restrict c,
                                                   max_len,
                                                   nice_len,
                                                   c->max_search_depth,
-                                                  &next_hash,
+                                                  next_hashes,
                                                   &best_len,
                                                   cache_ptr);
                cache_ptr->length = cache_ptr - matches;
@@ -955,7 +956,8 @@ xpress_find_matches(struct xpress_compressor * restrict c,
                 * highly compressible, so it doesn't matter as much what we do.
                 */
                if (best_len >= nice_len) {
-                       if (unlikely(best_len + 5 >= max_len))
+                       if (unlikely(best_len +
+                                    BT_MATCHFINDER_REQUIRED_NBYTES >= max_len))
                                break;
                        --best_len;
                        do {
@@ -965,7 +967,7 @@ xpress_find_matches(struct xpress_compressor * restrict c,
                                                             max_len,
                                                             nice_len,
                                                             c->max_search_depth,
-                                                            &next_hash);
+                                                            next_hashes);
                                cache_ptr->length = 0;
                                cache_ptr->offset = *in_next++;
                                cache_ptr++;
@@ -1090,12 +1092,12 @@ xpress_create_compressor(size_t max_bufsize, unsigned compression_level,
 
                if (compression_level < 30) {
                        c->impl = xpress_compress_greedy;
-                       c->max_search_depth = (compression_level * 24) / 16;
-                       c->nice_match_length = (compression_level * 48) / 16;
+                       c->max_search_depth = (compression_level * 30) / 16;
+                       c->nice_match_length = (compression_level * 60) / 16;
                } else {
                        c->impl = xpress_compress_lazy;
-                       c->max_search_depth = (compression_level * 24) / 32;
-                       c->nice_match_length = (compression_level * 48) / 32;
+                       c->max_search_depth = (compression_level * 30) / 32;
+                       c->nice_match_length = (compression_level * 60) / 32;
 
                        /* xpress_compress_lazy() needs max_search_depth >= 2
                         * because it halves the max_search_depth when
@@ -1122,8 +1124,8 @@ xpress_create_compressor(size_t max_bufsize, unsigned compression_level,
                        &c->match_cache[max_bufsize * CACHE_RESERVE_PER_POS];
 
                c->impl = xpress_compress_near_optimal;
-               c->max_search_depth = (compression_level * 32) / 100;
-               c->nice_match_length = (compression_level * 50) / 100;
+               c->max_search_depth = (compression_level * 28) / 100;
+               c->nice_match_length = (compression_level * 56) / 100;
                c->num_optim_passes = compression_level / 40;
        }
 #endif /* SUPPORT_NEAR_OPTIMAL_PARSING */