| line |
true |
false |
branch |
|
2766
|
4 |
0 |
if (end - start < 1024) { |
|
2770
|
94 |
4 |
for (i = start; i < end; i++) { |
|
2772
|
7 |
87 |
if (v < best) { |
|
2791
|
0 |
0 |
if (end - start <= NUM) break; |
|
2793
|
0 |
0 |
for (i = 0; i < NUM; i++) { |
|
2799
|
0 |
0 |
for (i = 1; i < NUM; i++) { |
|
2800
|
0 |
0 |
if (vp[i] < best) { |
|
2805
|
0 |
0 |
if (best > lastbest) break; |
|
2807
|
0 |
0 |
start = besti == 0 ? start : p[besti - 1]; |
|
2808
|
0 |
0 |
end = besti == NUM - 1 ? end : p[besti + 1]; |
|
2853
|
1 |
0 |
ZOPFLI_APPEND_DATA(value, out, outsize); |
|
|
1 |
0 |
ZOPFLI_APPEND_DATA(value, out, outsize); |
|
2854
|
0 |
1 |
for (i = 0; i + 1 < *outsize; i++) { |
|
2855
|
0 |
0 |
if ((*out)[i] > value) { |
|
2857
|
0 |
0 |
for (j = *outsize - 1; j > i; j--) { |
|
2878
|
0 |
0 |
if (nlz77points > 0) { |
|
2879
|
0 |
0 |
for (i = 0; i < lz77->size; i++) { |
|
2880
|
0 |
0 |
size_t length = lz77->dists[i] == 0 ? 1 : lz77->litlens[i]; |
|
2881
|
0 |
0 |
if (lz77splitpoints[npoints] == i) { |
|
2882
|
0 |
0 |
ZOPFLI_APPEND_DATA(pos, &splitpoints, &npoints); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(pos, &splitpoints, &npoints); |
|
2883
|
0 |
0 |
if (npoints == nlz77points) break; |
|
2891
|
0 |
0 |
for (i = 0; i < npoints; i++) { |
|
2895
|
0 |
0 |
for (i = 0; i < npoints; i++) { |
|
2923
|
6 |
4 |
for (i = 0; i <= npoints; i++) { |
|
2924
|
2 |
4 |
size_t start = i == 0 ? 0 : splitpoints[i - 1]; |
|
2925
|
4 |
2 |
size_t end = i == npoints ? lz77size - 1 : splitpoints[i]; |
|
2926
|
3 |
3 |
if (!done[start] && end - start > longest) { |
|
|
3 |
0 |
if (!done[start] && end - start > longest) { |
|
2946
|
0 |
3 |
if (lz77->size < 10) return; /* This code fails on tiny files. */ |
|
2949
|
0 |
3 |
if (!done) exit(-1); /* Allocation failed. */ |
|
2950
|
64 |
3 |
for (i = 0; i < lz77->size; i++) done[i] = 0; |
|
2957
|
4 |
0 |
if (maxblocks > 0 && numblocks >= maxblocks) { |
|
|
0 |
4 |
if (maxblocks > 0 && numblocks >= maxblocks) { |
|
2972
|
1 |
3 |
if (splitcost > origcost || llpos == lstart + 1 || llpos == lend) { |
|
|
1 |
0 |
if (splitcost > origcost || llpos == lstart + 1 || llpos == lend) { |
|
|
0 |
1 |
if (splitcost > origcost || llpos == lstart + 1 || llpos == lend) { |
|
2979
|
2 |
2 |
if (!FindLargestSplittableBlock( |
|
2984
|
1 |
1 |
if (lend - lstart < 10) { |
|
2989
|
0 |
3 |
if (options->verbose) { |
|
3025
|
1 |
2 |
if (nlz77points > 0) { |
|
3026
|
10 |
0 |
for (i = 0; i < store.size; i++) { |
|
3027
|
1 |
9 |
size_t length = store.dists[i] == 0 ? 1 : store.litlens[i]; |
|
3028
|
1 |
9 |
if (lz77splitpoints[*npoints] == i) { |
|
3029
|
1 |
0 |
ZOPFLI_APPEND_DATA(pos, splitpoints, npoints); |
|
|
1 |
0 |
ZOPFLI_APPEND_DATA(pos, splitpoints, npoints); |
|
3030
|
1 |
0 |
if (*npoints == nlz77points) break; |
|
3048
|
0 |
0 |
while (i < inend) { |
|
3049
|
0 |
0 |
ZOPFLI_APPEND_DATA(i, splitpoints, npoints); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(i, splitpoints, npoints); |
|
3313
|
0 |
8 |
if(lmc->sublen == NULL) { |
|
3322
|
18360 |
8 |
for (i = 0; i < blocksize; i++) lmc->length[i] = 1; |
|
3323
|
18360 |
8 |
for (i = 0; i < blocksize; i++) lmc->dist[i] = 0; |
|
3324
|
440640 |
8 |
for (i = 0; i < ZOPFLI_CACHE_LENGTH * blocksize * 3; i++) lmc->sublen[i] = 0; |
|
3346
|
0 |
17468 |
if (length < 3) return; |
|
3347
|
4471808 |
17468 |
for (i = 3; i <= length; i++) { |
|
3348
|
4454340 |
17468 |
if (i == length || sublen[i] != sublen[i + 1]) { |
|
|
0 |
4454340 |
if (i == length || sublen[i] != sublen[i + 1]) { |
|
3354
|
0 |
17468 |
if (j >= ZOPFLI_CACHE_LENGTH) break; |
|
3357
|
17468 |
0 |
if (j < ZOPFLI_CACHE_LENGTH) { |
|
3376
|
0 |
122310 |
if (length < 3) return; |
|
3378
|
122310 |
0 |
for (j = 0; j < ZOPFLI_CACHE_LENGTH; j++) { |
|
3381
|
31678290 |
122310 |
for (i = prevlength; i <= length; i++) { |
|
3384
|
122310 |
0 |
if (length == maxlength) break; |
|
3400
|
0 |
244620 |
if (cache[1] == 0 && cache[2] == 0) return 0; /* No sublen cached. */ |
|
|
0 |
0 |
if (cache[1] == 0 && cache[2] == 0) return 0; /* No sublen cached. */ |
|
5985
|
16692 |
8487340 |
if (dist < 5) return 0; |
|
5986
|
128 |
8487212 |
else if (dist < 9) return 1; |
|
5987
|
8485804 |
1408 |
else if (dist < 17) return 2; |
|
5988
|
128 |
1280 |
else if (dist < 33) return 3; |
|
5989
|
128 |
1152 |
else if (dist < 65) return 4; |
|
5990
|
128 |
1024 |
else if (dist < 129) return 5; |
|
5991
|
128 |
896 |
else if (dist < 257) return 6; |
|
5992
|
128 |
768 |
else if (dist < 513) return 7; |
|
5993
|
128 |
640 |
else if (dist < 1025) return 8; |
|
5994
|
128 |
512 |
else if (dist < 2049) return 9; |
|
5995
|
128 |
384 |
else if (dist < 4097) return 10; |
|
5996
|
128 |
256 |
else if (dist < 8193) return 11; |
|
5997
|
128 |
128 |
else if (dist < 16385) return 12; |
|
6012
|
0 |
37 |
if (dist < 5) return 0; |
|
6013
|
0 |
37 |
else if (dist < 9) return (dist - 5) & 1; |
|
6014
|
37 |
0 |
else if (dist < 17) return (dist - 9) & 3; |
|
6015
|
0 |
0 |
else if (dist < 33) return (dist - 17) & 7; |
|
6016
|
0 |
0 |
else if (dist < 65) return (dist - 33) & 15; |
|
6017
|
0 |
0 |
else if (dist < 129) return (dist - 65) & 31; |
|
6018
|
0 |
0 |
else if (dist < 257) return (dist - 129) & 63; |
|
6019
|
0 |
0 |
else if (dist < 513) return (dist - 257) & 127; |
|
6020
|
0 |
0 |
else if (dist < 1025) return (dist - 513) & 255; |
|
6021
|
0 |
0 |
else if (dist < 2049) return (dist - 1025) & 511; |
|
6022
|
0 |
0 |
else if (dist < 4097) return (dist - 2049) & 1023; |
|
6023
|
0 |
0 |
else if (dist < 8193) return (dist - 4097) & 2047; |
|
6024
|
0 |
0 |
else if (dist < 16385) return (dist - 8193) & 4095; |
|
6040
|
7720171 |
900 |
if (dist < 193) { |
|
6041
|
7719691 |
480 |
if (dist < 13) { /* dist 0..13. */ |
|
6042
|
15648 |
7704043 |
if (dist < 5) return dist - 1; |
|
6043
|
60 |
7703983 |
else if (dist < 7) return 4; |
|
6044
|
60 |
7703923 |
else if (dist < 9) return 5; |
|
6047
|
60 |
420 |
if (dist < 17) return 7; |
|
6048
|
60 |
360 |
else if (dist < 25) return 8; |
|
6049
|
60 |
300 |
else if (dist < 33) return 9; |
|
6050
|
60 |
240 |
else if (dist < 49) return 10; |
|
6051
|
60 |
180 |
else if (dist < 65) return 11; |
|
6052
|
60 |
120 |
else if (dist < 97) return 12; |
|
6053
|
60 |
60 |
else if (dist < 129) return 13; |
|
6057
|
420 |
480 |
if (dist < 2049) { /* dist 193..2049. */ |
|
6058
|
60 |
360 |
if (dist < 257) return 15; |
|
6059
|
60 |
300 |
else if (dist < 385) return 16; |
|
6060
|
60 |
240 |
else if (dist < 513) return 17; |
|
6061
|
60 |
180 |
else if (dist < 769) return 18; |
|
6062
|
60 |
120 |
else if (dist < 1025) return 19; |
|
6063
|
60 |
60 |
else if (dist < 1537) return 20; |
|
6066
|
60 |
420 |
if (dist < 3073) return 22; |
|
6067
|
60 |
360 |
else if (dist < 4097) return 23; |
|
6068
|
60 |
300 |
else if (dist < 6145) return 24; |
|
6069
|
60 |
240 |
else if (dist < 8193) return 25; |
|
6070
|
60 |
180 |
else if (dist < 12289) return 26; |
|
6071
|
60 |
120 |
else if (dist < 16385) return 27; |
|
6072
|
60 |
60 |
else if (dist < 24577) return 28; |
|
6246
|
3 |
9 |
if (*bp == 0) ZOPFLI_APPEND_DATA(0, out, outsize); |
|
|
0 |
3 |
if (*bp == 0) ZOPFLI_APPEND_DATA(0, out, outsize); |
|
|
0 |
0 |
if (*bp == 0) ZOPFLI_APPEND_DATA(0, out, outsize); |
|
6255
|
179 |
99 |
for (i = 0; i < length; i++) { |
|
6257
|
18 |
161 |
if (*bp == 0) ZOPFLI_APPEND_DATA(0, out, outsize); |
|
|
1 |
17 |
if (*bp == 0) ZOPFLI_APPEND_DATA(0, out, outsize); |
|
|
0 |
1 |
if (*bp == 0) ZOPFLI_APPEND_DATA(0, out, outsize); |
|
6272
|
356 |
115 |
for (i = 0; i < length; i++) { |
|
6274
|
49 |
307 |
if (*bp == 0) ZOPFLI_APPEND_DATA(0, out, outsize); |
|
|
3 |
46 |
if (*bp == 0) ZOPFLI_APPEND_DATA(0, out, outsize); |
|
|
0 |
3 |
if (*bp == 0) ZOPFLI_APPEND_DATA(0, out, outsize); |
|
6295
|
15660 |
522 |
for (i = 0; i < 30 /* Ignore the two unused codes from the spec */; i++) { |
|
6296
|
434 |
15226 |
if (d_lengths[i]) num_dist_codes++; |
|
6297
|
0 |
15660 |
if (num_dist_codes >= 2) return; /* Two or more codes is fine. */ |
|
6300
|
88 |
434 |
if (num_dist_codes == 0) { |
|
6302
|
434 |
0 |
} else if (num_dist_codes == 1) { |
|
6303
|
0 |
434 |
d_lengths[d_lengths[0] ? 1 : 0] = 1; |
|
6337
|
79515 |
4185 |
for(i = 0; i < 19; i++) clcounts[i] = 0; |
|
6340
|
30841 |
704 |
while (hlit > 0 && ll_lengths[257 + hlit - 1] == 0) hlit--; |
|
|
27360 |
3481 |
while (hlit > 0 && ll_lengths[257 + hlit - 1] == 0) hlit--; |
|
6341
|
103960 |
0 |
while (hdist > 0 && d_lengths[1 + hdist - 1] == 0) hdist--; |
|
|
99775 |
4185 |
while (hdist > 0 && d_lengths[1 + hdist - 1] == 0) hdist--; |
|
6346
|
190493 |
4185 |
for (i = 0; i < lld_total; i++) { |
|
6348
|
178554 |
11939 |
unsigned char symbol = i < hlit2 ? ll_lengths[i] : d_lengths[i - hlit2]; |
|
6350
|
171513 |
18980 |
if(use_16 || (symbol == 0 && (use_17 || use_18))) { |
|
|
150748 |
20765 |
if(use_16 || (symbol == 0 && (use_17 || use_18))) { |
|
|
146374 |
4374 |
if(use_16 || (symbol == 0 && (use_17 || use_18))) { |
|
|
2185 |
144189 |
if(use_16 || (symbol == 0 && (use_17 || use_18))) { |
|
6351
|
1028279 |
2092 |
for (j = i + 1; j < lld_total && symbol == |
|
|
1004832 |
23447 |
for (j = i + 1; j < lld_total && symbol == |
|
6352
|
1008865 |
19414 |
(j < hlit2 ? ll_lengths[j] : d_lengths[j - hlit2]); j++) { |
|
6359
|
159488 |
31005 |
if (symbol == 0 && count >= 3) { |
|
|
13583 |
145905 |
if (symbol == 0 && count >= 3) { |
|
6360
|
7763 |
5820 |
if (use_18) { |
|
6361
|
5951 |
7763 |
while (count >= 11) { |
|
6363
|
3 |
5948 |
if (!size_only) { |
|
6364
|
2 |
1 |
ZOPFLI_APPEND_DATA(18, &rle, &rle_size); |
|
|
1 |
1 |
ZOPFLI_APPEND_DATA(18, &rle, &rle_size); |
|
6365
|
2 |
1 |
ZOPFLI_APPEND_DATA(count2 - 11, &rle_bits, &rle_bits_size); |
|
|
1 |
1 |
ZOPFLI_APPEND_DATA(count2 - 11, &rle_bits, &rle_bits_size); |
|
6371
|
7763 |
5820 |
if (use_17) { |
|
6372
|
31469 |
7763 |
while (count >= 3) { |
|
6374
|
1 |
31468 |
if (!size_only) { |
|
6375
|
1 |
0 |
ZOPFLI_APPEND_DATA(17, &rle, &rle_size); |
|
|
0 |
1 |
ZOPFLI_APPEND_DATA(17, &rle, &rle_size); |
|
6376
|
1 |
0 |
ZOPFLI_APPEND_DATA(count2 - 3, &rle_bits, &rle_bits_size); |
|
|
0 |
1 |
ZOPFLI_APPEND_DATA(count2 - 3, &rle_bits, &rle_bits_size); |
|
6385
|
18980 |
171513 |
if (use_16 && count >= 4) { |
|
|
3176 |
15804 |
if (use_16 && count >= 4) { |
|
6388
|
0 |
3176 |
if (!size_only) { |
|
6389
|
0 |
0 |
ZOPFLI_APPEND_DATA(symbol, &rle, &rle_size); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(symbol, &rle, &rle_size); |
|
6390
|
0 |
0 |
ZOPFLI_APPEND_DATA(0, &rle_bits, &rle_bits_size); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(0, &rle_bits, &rle_bits_size); |
|
6392
|
25911 |
3176 |
while (count >= 3) { |
|
6394
|
0 |
25911 |
if (!size_only) { |
|
6395
|
0 |
0 |
ZOPFLI_APPEND_DATA(16, &rle, &rle_size); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(16, &rle, &rle_size); |
|
6396
|
0 |
0 |
ZOPFLI_APPEND_DATA(count2 - 3, &rle_bits, &rle_bits_size); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(count2 - 3, &rle_bits, &rle_bits_size); |
|
6405
|
185908 |
190493 |
while (count > 0) { |
|
6406
|
6 |
185902 |
if (!size_only) { |
|
6407
|
2 |
4 |
ZOPFLI_APPEND_DATA(symbol, &rle, &rle_size); |
|
|
0 |
2 |
ZOPFLI_APPEND_DATA(symbol, &rle, &rle_size); |
|
6408
|
2 |
4 |
ZOPFLI_APPEND_DATA(0, &rle_bits, &rle_bits_size); |
|
|
0 |
2 |
ZOPFLI_APPEND_DATA(0, &rle_bits, &rle_bits_size); |
|
6415
|
1 |
4184 |
if (!size_only) ZopfliLengthsToSymbols(clcl, 19, 7, clsymbols); |
|
6419
|
8370 |
0 |
while (hclen > 0 && clcounts[order[hclen + 4 - 1]] == 0) hclen--; |
|
|
4185 |
4185 |
while (hclen > 0 && clcounts[order[hclen + 4 - 1]] == 0) hclen--; |
|
6421
|
1 |
4184 |
if (!size_only) { |
|
6426
|
18 |
1 |
for (i = 0; i < hclen + 4; i++) { |
|
6430
|
10 |
1 |
for (i = 0; i < rle_size; i++) { |
|
6434
|
0 |
10 |
if (rle[i] == 16) AddBits(rle_bits[i], 2, bp, out, outsize); |
|
6435
|
1 |
9 |
else if (rle[i] == 17) AddBits(rle_bits[i], 3, bp, out, outsize); |
|
6436
|
3 |
6 |
else if (rle[i] == 18) AddBits(rle_bits[i], 7, bp, out, outsize); |
|
6442
|
79515 |
4185 |
for(i = 0; i < 19; i++) { |
|
6465
|
8 |
1 |
for(i = 0; i < 8; i++) { |
|
6469
|
7 |
1 |
if (bestsize == 0 || size < bestsize) { |
|
|
4 |
3 |
if (bestsize == 0 || size < bestsize) { |
|
6488
|
4176 |
522 |
for(i = 0; i < 8; i++) { |
|
6492
|
3654 |
522 |
if (result == 0 || size < result) result = size; |
|
|
2245 |
1409 |
if (result == 0 || size < result) result = size; |
|
6513
|
64 |
4 |
for (i = lstart; i < lend; i++) { |
|
6516
|
27 |
37 |
if (dist == 0) { |
|
6543
|
29808 |
207 |
for (i = 0; i < 144; i++) ll_lengths[i] = 8; |
|
6544
|
23184 |
207 |
for (i = 144; i < 256; i++) ll_lengths[i] = 9; |
|
6545
|
4968 |
207 |
for (i = 256; i < 280; i++) ll_lengths[i] = 7; |
|
6546
|
1656 |
207 |
for (i = 280; i < 288; i++) ll_lengths[i] = 8; |
|
6547
|
6624 |
207 |
for (i = 0; i < 32; i++) d_lengths[i] = 5; |
|
6560
|
12314 |
726 |
for (i = lstart; i < lend; i++) { |
|
6563
|
2727 |
9587 |
if (lz77->dists[i] == 0) { |
|
6589
|
522 |
0 |
if (lstart + ZOPFLI_NUM_LL * 3 > lend) { |
|
6593
|
0 |
0 |
for (i = 0; i < 256; i++) { |
|
6596
|
0 |
0 |
for (i = 257; i < 286; i++) { |
|
6600
|
0 |
0 |
for (i = 0; i < 30; i++) { |
|
6616
|
204 |
0 |
if (lstart + ZOPFLI_NUM_LL * 3 > lend) { |
|
6629
|
790 |
1915 |
if (x > y) |
|
6647
|
9587 |
0 |
for (; length >= 0; --length) { |
|
6648
|
44 |
9543 |
if (length == 0) { |
|
6651
|
478 |
9065 |
if (counts[length - 1] != 0) { |
|
6659
|
74455 |
478 |
for (i = 0; i < length; ++i) good_for_rle[i] = 0; |
|
6666
|
74933 |
478 |
for (i = 0; i < length + 1; ++i) { |
|
6667
|
74455 |
478 |
if (i == length || counts[i] != symbol) { |
|
|
2068 |
72387 |
if (i == length || counts[i] != symbol) { |
|
6668
|
1273 |
1273 |
if ((symbol == 0 && stride >= 5) || (symbol != 0 && stride >= 7)) { |
|
|
421 |
852 |
if ((symbol == 0 && stride >= 5) || (symbol != 0 && stride >= 7)) { |
|
|
1273 |
421 |
if ((symbol == 0 && stride >= 5) || (symbol != 0 && stride >= 7)) { |
|
|
0 |
1273 |
if ((symbol == 0 && stride >= 5) || (symbol != 0 && stride >= 7)) { |
|
6669
|
71750 |
852 |
for (k = 0; k < stride; ++k) { |
|
6674
|
2068 |
478 |
if (i != length) { |
|
6686
|
74933 |
478 |
for (i = 0; i < length + 1; ++i) { |
|
6687
|
74455 |
478 |
if (i == length || good_for_rle[i] |
|
|
2705 |
71750 |
if (i == length || good_for_rle[i] |
|
6689
|
348 |
2357 |
|| AbsDiff(counts[i], limit) >= 4) { |
|
6690
|
72441 |
135 |
if (stride >= 4 || (stride >= 3 && sum == 0)) { |
|
|
7 |
72434 |
if (stride >= 4 || (stride >= 3 && sum == 0)) { |
|
|
0 |
7 |
if (stride >= 4 || (stride >= 3 && sum == 0)) { |
|
6693
|
36 |
99 |
if (count < 1) count = 1; |
|
6694
|
0 |
135 |
if (sum == 0) { |
|
6698
|
2011 |
135 |
for (k = 0; k < stride; ++k) { |
|
6706
|
70916 |
1660 |
if (i < length - 3) { |
|
6711
|
1182 |
478 |
} else if (i < length) { |
|
6718
|
74455 |
478 |
if (i != length) { |
|
6760
|
95 |
166 |
if (treesize2 + datasize2 < treesize + datasize) { |
|
6797
|
200 |
464 |
if (btype == 0) { |
|
6800
|
200 |
0 |
size_t blocks = length / 65535 + (rem ? 1 : 0); |
|
6805
|
204 |
260 |
} if (btype == 1) { |
|
6822
|
196 |
0 |
uncompressedcost : ZopfliCalculateBlockSize(lz77, lstart, lend, 1); |
|
6824
|
0 |
0 |
return (uncompressedcost < fixedcost && uncompressedcost < dyncost) |
|
6826
|
0 |
196 |
: (fixedcost < dyncost ? fixedcost : dyncost); |
|
|
84 |
112 |
: (fixedcost < dyncost ? fixedcost : dyncost); |
|
6844
|
0 |
0 |
if (pos + blocksize > inend) blocksize = inend - pos; |
|
6849
|
0 |
0 |
AddBit(final && currentfinal, bp, out, outsize); |
|
|
0 |
0 |
AddBit(final && currentfinal, bp, out, outsize); |
|
6857
|
0 |
0 |
ZOPFLI_APPEND_DATA(blocksize % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(blocksize % 256, out, outsize); |
|
6858
|
0 |
0 |
ZOPFLI_APPEND_DATA((blocksize / 256) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((blocksize / 256) % 256, out, outsize); |
|
6859
|
0 |
0 |
ZOPFLI_APPEND_DATA(nlen % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(nlen % 256, out, outsize); |
|
6860
|
0 |
0 |
ZOPFLI_APPEND_DATA((nlen / 256) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((nlen / 256) % 256, out, outsize); |
|
6862
|
0 |
0 |
for (i = 0; i < blocksize; i++) { |
|
6863
|
0 |
0 |
ZOPFLI_APPEND_DATA(in[pos + i], out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(in[pos + i], out, outsize); |
|
6866
|
0 |
0 |
if (currentfinal) break; |
|
6902
|
0 |
4 |
if (btype == 0) { |
|
6904
|
0 |
0 |
size_t pos = lstart == lend ? 0 : lz77->pos[lstart]; |
|
6915
|
3 |
1 |
if (btype == 1) { |
|
6927
|
0 |
1 |
if (options->verbose) { |
|
6942
|
64 |
4 |
for (i = lstart; i < lend; i++) { |
|
6943
|
37 |
27 |
uncompressed_size += lz77->dists[i] == 0 ? 1 : lz77->litlens[i]; |
|
6946
|
0 |
4 |
if (options->verbose) { |
|
6966
|
0 |
4 |
int expensivefixed = (lz77->size < 1000) || fixedcost <= dyncost * 1.1; |
|
|
0 |
0 |
int expensivefixed = (lz77->size < 1000) || fixedcost <= dyncost * 1.1; |
|
6969
|
0 |
4 |
if (lstart == lend) { |
|
6977
|
4 |
0 |
if (expensivefixed) { |
|
6989
|
0 |
4 |
if (uncompressedcost < fixedcost && uncompressedcost < dyncost) { |
|
|
0 |
0 |
if (uncompressedcost < fixedcost && uncompressedcost < dyncost) { |
|
6992
|
3 |
1 |
} else if (fixedcost < dyncost) { |
|
6993
|
3 |
0 |
if (expensivefixed) { |
|
7032
|
0 |
3 |
if (btype == 0) { |
|
7035
|
0 |
3 |
} else if (btype == 1) { |
|
7051
|
3 |
0 |
if (options->blocksplitting) { |
|
7060
|
4 |
3 |
for (i = 0; i <= npoints; i++) { |
|
7061
|
1 |
3 |
size_t start = i == 0 ? instart : splitpoints_uncompressed[i - 1]; |
|
7062
|
1 |
3 |
size_t end = i == npoints ? inend : splitpoints_uncompressed[i]; |
|
7071
|
1 |
3 |
if (i < npoints) splitpoints[i] = lz77.size; |
|
7078
|
3 |
0 |
if (options->blocksplitting && npoints > 1) { |
|
|
0 |
3 |
if (options->blocksplitting && npoints > 1) { |
|
7086
|
0 |
0 |
for (i = 0; i <= npoints2; i++) { |
|
7087
|
0 |
0 |
size_t start = i == 0 ? 0 : splitpoints2[i - 1]; |
|
7088
|
0 |
0 |
size_t end = i == npoints2 ? lz77.size : splitpoints2[i]; |
|
7092
|
0 |
0 |
if (totalcost2 < totalcost) { |
|
7101
|
4 |
3 |
for (i = 0; i <= npoints; i++) { |
|
7102
|
1 |
3 |
size_t start = i == 0 ? 0 : splitpoints[i - 1]; |
|
7103
|
3 |
1 |
size_t end = i == npoints ? lz77.size : splitpoints[i]; |
|
7104
|
3 |
1 |
AddLZ77BlockAutoType(options, i == npoints && final, |
|
|
3 |
0 |
AddLZ77BlockAutoType(options, i == npoints && final, |
|
7124
|
3 |
0 |
int final2 = final && masterfinal; |
|
|
3 |
0 |
int final2 = final && masterfinal; |
|
7125
|
3 |
0 |
size_t size = masterfinal ? insize - i : ZOPFLI_MASTER_BLOCK_SIZE; |
|
7129
|
0 |
3 |
} while (i < insize); |
|
7131
|
0 |
3 |
if (options->verbose) { |
|
8404
|
9180 |
3 |
for (; size > 0; size--) { |
|
8417
|
3 |
0 |
ZOPFLI_APPEND_DATA(31, out, outsize); /* ID1 */ |
|
|
3 |
0 |
ZOPFLI_APPEND_DATA(31, out, outsize); /* ID1 */ |
|
8418
|
3 |
0 |
ZOPFLI_APPEND_DATA(139, out, outsize); /* ID2 */ |
|
|
0 |
3 |
ZOPFLI_APPEND_DATA(139, out, outsize); /* ID2 */ |
|
8419
|
3 |
0 |
ZOPFLI_APPEND_DATA(8, out, outsize); /* CM */ |
|
|
0 |
3 |
ZOPFLI_APPEND_DATA(8, out, outsize); /* CM */ |
|
8420
|
0 |
3 |
ZOPFLI_APPEND_DATA(0, out, outsize); /* FLG */ |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(0, out, outsize); /* FLG */ |
|
8422
|
3 |
0 |
ZOPFLI_APPEND_DATA(0, out, outsize); |
|
|
0 |
3 |
ZOPFLI_APPEND_DATA(0, out, outsize); |
|
8423
|
0 |
3 |
ZOPFLI_APPEND_DATA(0, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(0, out, outsize); |
|
8424
|
0 |
3 |
ZOPFLI_APPEND_DATA(0, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(0, out, outsize); |
|
8425
|
0 |
3 |
ZOPFLI_APPEND_DATA(0, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(0, out, outsize); |
|
8427
|
3 |
0 |
ZOPFLI_APPEND_DATA(2, out, outsize); /* XFL, 2 indicates best compression. */ |
|
|
0 |
3 |
ZOPFLI_APPEND_DATA(2, out, outsize); /* XFL, 2 indicates best compression. */ |
|
8428
|
0 |
3 |
ZOPFLI_APPEND_DATA(3, out, outsize); /* OS follows Unix conventions. */ |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(3, out, outsize); /* OS follows Unix conventions. */ |
|
8434
|
0 |
3 |
ZOPFLI_APPEND_DATA(crcvalue % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(crcvalue % 256, out, outsize); |
|
8435
|
0 |
3 |
ZOPFLI_APPEND_DATA((crcvalue >> 8) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((crcvalue >> 8) % 256, out, outsize); |
|
8436
|
0 |
3 |
ZOPFLI_APPEND_DATA((crcvalue >> 16) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((crcvalue >> 16) % 256, out, outsize); |
|
8437
|
0 |
3 |
ZOPFLI_APPEND_DATA((crcvalue >> 24) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((crcvalue >> 24) % 256, out, outsize); |
|
8440
|
0 |
3 |
ZOPFLI_APPEND_DATA(insize % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(insize % 256, out, outsize); |
|
8441
|
0 |
3 |
ZOPFLI_APPEND_DATA((insize >> 8) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((insize >> 8) % 256, out, outsize); |
|
8442
|
0 |
3 |
ZOPFLI_APPEND_DATA((insize >> 16) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((insize >> 16) % 256, out, outsize); |
|
8443
|
0 |
3 |
ZOPFLI_APPEND_DATA((insize >> 24) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((insize >> 24) % 256, out, outsize); |
|
8445
|
0 |
3 |
if (options->verbose) { |
|
8733
|
8847360 |
135 |
for (i = 0; i < 65536; i++) { |
|
8736
|
4423680 |
135 |
for (i = 0; i < window_size; i++) { |
|
8742
|
4423680 |
135 |
for (i = 0; i < window_size; i++) { |
|
8749
|
8847360 |
135 |
for (i = 0; i < 65536; i++) { |
|
8752
|
4423680 |
135 |
for (i = 0; i < window_size; i++) { |
|
8791
|
312147 |
270 |
UpdateHashValue(h, pos + ZOPFLI_MIN_MATCH <= end ? |
|
8794
|
310998 |
1419 |
if (h->head[h->val] != -1 && h->hashval[h->head[h->val]] == h->val) { |
|
|
310998 |
0 |
if (h->head[h->val] != -1 && h->hashval[h->head[h->val]] == h->val) { |
|
8802
|
0 |
312417 |
if (h->same[(pos - 1) & ZOPFLI_WINDOW_MASK] > 1) { |
|
8805
|
312282 |
135 |
while (pos + amount + 1 < end && |
|
|
0 |
312282 |
while (pos + amount + 1 < end && |
|
8806
|
0 |
0 |
array[pos] == array[pos + amount + 1] && amount < (unsigned short)(-1)) { |
|
8815
|
310998 |
1419 |
if (h->head2[h->val2] != -1 && h->hashval2[h->head2[h->val2]] == h->val2) { |
|
|
310998 |
0 |
if (h->head2[h->val2] != -1 && h->hashval2[h->head2[h->val2]] == h->val2) { |
|
8826
|
135 |
0 |
if (pos + 1 < end) UpdateHashValue(h, array[pos + 1]); |
|
8945
|
14148 |
78817 |
if (index == 0 && lastcount >= numsymbols) return; |
|
|
5539 |
8609 |
if (index == 0 && lastcount >= numsymbols) return; |
|
8955
|
8609 |
78817 |
if (index == 0) { |
|
8960
|
69496 |
9321 |
if (lastcount < numsymbols && sum > leaves[lastcount].weight) { |
|
|
43037 |
26459 |
if (lastcount < numsymbols && sum > leaves[lastcount].weight) { |
|
8979
|
2274 |
1849 |
if (lastcount < numsymbols && sum > leaves[lastcount].weight) { |
|
|
2274 |
0 |
if (lastcount < numsymbols && sum > leaves[lastcount].weight) { |
|
9002
|
16605 |
4123 |
for (i = 0; i < maxbits; i++) { |
|
9021
|
13428 |
4123 |
for (node = chain; node; node = node->tail) { |
|
9026
|
13428 |
4123 |
while (ptr >= end) { |
|
9027
|
21010 |
13428 |
for (; val > counts[ptr - 1]; val--) { |
|
9058
|
246555 |
5229 |
for (i = 0; i < n; i++) { |
|
9063
|
246555 |
5229 |
for (i = 0; i < n; i++) { |
|
9064
|
22612 |
223943 |
if (frequencies[i]) { |
|
9072
|
0 |
5229 |
if ((1 << maxbits) < numsymbols) { |
|
9076
|
88 |
5141 |
if (numsymbols == 0) { |
|
9080
|
434 |
4707 |
if (numsymbols == 1) { |
|
9085
|
584 |
4123 |
if (numsymbols == 2) { |
|
9094
|
21010 |
4123 |
for (i = 0; i < numsymbols; i++) { |
|
9095
|
0 |
21010 |
if (leaves[i].weight >= |
|
9103
|
21010 |
4123 |
for (i = 0; i < numsymbols; i++) { |
|
9107
|
4012 |
111 |
if (numsymbols - 1 < maxbits) { |
|
9121
|
21405 |
4123 |
for (i = 0; i < numBoundaryPMRuns - 1; i++) { |
|
10301
|
4 |
0 |
if (!dest->litlens || !dest->dists) exit(-1); |
|
|
0 |
4 |
if (!dest->litlens || !dest->dists) exit(-1); |
|
10302
|
0 |
4 |
if (!dest->pos) exit(-1); |
|
10303
|
4 |
0 |
if (!dest->ll_symbol || !dest->d_symbol) exit(-1); |
|
|
0 |
4 |
if (!dest->ll_symbol || !dest->d_symbol) exit(-1); |
|
10304
|
4 |
0 |
if (!dest->ll_counts || !dest->d_counts) exit(-1); |
|
|
0 |
4 |
if (!dest->ll_counts || !dest->d_counts) exit(-1); |
|
10307
|
64 |
4 |
for (i = 0; i < source->size; i++) { |
|
10314
|
1152 |
4 |
for (i = 0; i < llsize; i++) { |
|
10317
|
160 |
4 |
for (i = 0; i < dsize; i++) { |
|
10337
|
74 |
1142 |
if (origsize % ZOPFLI_NUM_LL == 0) { |
|
10339
|
21312 |
74 |
for (i = 0; i < ZOPFLI_NUM_LL; i++) { |
|
10340
|
740 |
20572 |
ZOPFLI_APPEND_DATA( |
|
|
74 |
666 |
ZOPFLI_APPEND_DATA( |
|
|
0 |
21312 |
ZOPFLI_APPEND_DATA( |
|
10345
|
93 |
1123 |
if (origsize % ZOPFLI_NUM_D == 0) { |
|
10347
|
2976 |
93 |
for (i = 0; i < ZOPFLI_NUM_D; i++) { |
|
10348
|
463 |
2513 |
ZOPFLI_APPEND_DATA( |
|
|
74 |
389 |
ZOPFLI_APPEND_DATA( |
|
|
608 |
2368 |
ZOPFLI_APPEND_DATA( |
|
10354
|
408 |
808 |
ZOPFLI_APPEND_DATA(length, &store->litlens, &store->size); |
|
|
74 |
334 |
ZOPFLI_APPEND_DATA(length, &store->litlens, &store->size); |
|
10356
|
408 |
808 |
ZOPFLI_APPEND_DATA(dist, &store->dists, &store->size); |
|
|
74 |
334 |
ZOPFLI_APPEND_DATA(dist, &store->dists, &store->size); |
|
10358
|
408 |
808 |
ZOPFLI_APPEND_DATA(pos, &store->pos, &store->size); |
|
|
74 |
334 |
ZOPFLI_APPEND_DATA(pos, &store->pos, &store->size); |
|
10361
|
513 |
703 |
if (dist == 0) { |
|
10363
|
285 |
228 |
ZOPFLI_APPEND_DATA(length, &store->ll_symbol, &store->size); |
|
|
57 |
228 |
ZOPFLI_APPEND_DATA(length, &store->ll_symbol, &store->size); |
|
10365
|
285 |
228 |
ZOPFLI_APPEND_DATA(0, &store->d_symbol, &store->size); |
|
|
57 |
228 |
ZOPFLI_APPEND_DATA(0, &store->d_symbol, &store->size); |
|
10369
|
123 |
580 |
ZOPFLI_APPEND_DATA(ZopfliGetLengthSymbol(length), |
|
|
17 |
106 |
ZOPFLI_APPEND_DATA(ZopfliGetLengthSymbol(length), |
|
10372
|
123 |
580 |
ZOPFLI_APPEND_DATA(ZopfliGetDistSymbol(dist), |
|
|
17 |
106 |
ZOPFLI_APPEND_DATA(ZopfliGetDistSymbol(dist), |
|
10382
|
64 |
4 |
for (i = 0; i < store->size; i++) { |
|
10391
|
0 |
204 |
if (lstart == lend) return 0; |
|
10392
|
174 |
30 |
return lz77->pos[l] + ((lz77->dists[l] == 0) ? |
|
10403
|
0 |
0 |
for (i = 0; i < ZOPFLI_NUM_LL; i++) { |
|
10406
|
0 |
0 |
for (i = lpos + 1; i < llpos + ZOPFLI_NUM_LL && i < lz77->size; i++) { |
|
|
0 |
0 |
for (i = lpos + 1; i < llpos + ZOPFLI_NUM_LL && i < lz77->size; i++) { |
|
10409
|
0 |
0 |
for (i = 0; i < ZOPFLI_NUM_D; i++) { |
|
10412
|
0 |
0 |
for (i = lpos + 1; i < dpos + ZOPFLI_NUM_D && i < lz77->size; i++) { |
|
|
0 |
0 |
for (i = lpos + 1; i < dpos + ZOPFLI_NUM_D && i < lz77->size; i++) { |
|
10413
|
0 |
0 |
if (lz77->dists[i] != 0) d_counts[lz77->d_symbol[i]]--; |
|
10421
|
261 |
0 |
if (lstart + ZOPFLI_NUM_LL * 3 > lend) { |
|
10424
|
4415 |
261 |
for (i = lstart; i < lend; i++) { |
|
10426
|
3380 |
1035 |
if (lz77->dists[i] != 0) d_counts[lz77->d_symbol[i]]++; |
|
10432
|
0 |
0 |
if (lstart > 0) { |
|
10437
|
0 |
0 |
for (i = 0; i < ZOPFLI_NUM_LL; i++) { |
|
10440
|
0 |
0 |
for (i = 0; i < ZOPFLI_NUM_D; i++) { |
|
10454
|
8 |
3 |
if (add_lmc) { |
|
10465
|
8 |
3 |
if (s->lmc) { |
|
10498
|
0 |
268 |
return distance > 1024 ? length - 1 : length; |
|
10508
|
164754 |
666 |
for (i = 0; i < length; i++) { |
|
10509
|
0 |
164754 |
if (data[pos - dist + i] != data[pos + i]) { |
|
10532
|
636840 |
24170 |
while (scan < safe_end && *((size_t*)scan) == *((size_t*)match)) { |
|
|
636840 |
0 |
while (scan < safe_end && *((size_t*)scan) == *((size_t*)match)) { |
|
10554
|
64986 |
24170 |
while (scan != end && *scan == *match) { |
|
|
64986 |
0 |
while (scan != end && *scan == *match) { |
|
10577
|
147539 |
67 |
unsigned char cache_available = s->lmc && (s->lmc->length[lmcpos] == 0 || |
|
|
147539 |
0 |
unsigned char cache_available = s->lmc && (s->lmc->length[lmcpos] == 0 || |
|
|
122868 |
24671 |
unsigned char cache_available = s->lmc && (s->lmc->length[lmcpos] == 0 || |
|
10579
|
122868 |
24738 |
unsigned char limit_ok_for_cache = cache_available && |
|
|
14 |
122854 |
unsigned char limit_ok_for_cache = cache_available && |
|
10580
|
14 |
0 |
(*limit == ZOPFLI_MAX_MATCH || s->lmc->length[lmcpos] <= *limit || |
|
|
0 |
14 |
(*limit == ZOPFLI_MAX_MATCH || s->lmc->length[lmcpos] <= *limit || |
|
10581
|
0 |
0 |
(sublen && ZopfliMaxCachedSublen(s->lmc, |
|
10584
|
147539 |
67 |
if (s->lmc && limit_ok_for_cache && cache_available) { |
|
|
122854 |
24685 |
if (s->lmc && limit_ok_for_cache && cache_available) { |
|
|
122854 |
0 |
if (s->lmc && limit_ok_for_cache && cache_available) { |
|
10588
|
0 |
122854 |
if (*length > *limit) *length = *limit; |
|
10589
|
122310 |
544 |
if (sublen) { |
|
10592
|
122310 |
0 |
if (*limit == ZOPFLI_MAX_MATCH && *length >= ZOPFLI_MIN_MATCH) { |
|
10622
|
24555 |
67 |
unsigned char cache_available = s->lmc && (s->lmc->length[lmcpos] == 0 || |
|
|
24555 |
0 |
unsigned char cache_available = s->lmc && (s->lmc->length[lmcpos] == 0 || |
|
|
14 |
24541 |
unsigned char cache_available = s->lmc && (s->lmc->length[lmcpos] == 0 || |
|
10625
|
24555 |
67 |
if (s->lmc && limit == ZOPFLI_MAX_MATCH && sublen && !cache_available) { |
|
|
17468 |
7087 |
if (s->lmc && limit == ZOPFLI_MAX_MATCH && sublen && !cache_available) { |
|
|
17468 |
0 |
if (s->lmc && limit == ZOPFLI_MAX_MATCH && sublen && !cache_available) { |
|
|
17468 |
0 |
if (s->lmc && limit == ZOPFLI_MAX_MATCH && sublen && !cache_available) { |
|
10627
|
17468 |
0 |
s->lmc->dist[lmcpos] = length < ZOPFLI_MIN_MATCH ? 0 : distance; |
|
10628
|
17468 |
0 |
s->lmc->length[lmcpos] = length < ZOPFLI_MIN_MATCH ? 0 : length; |
|
10658
|
122854 |
24752 |
if (TryGetFromLongestMatchCache(s, pos, &limit, sublen, distance, length)) { |
|
10668
|
130 |
24622 |
if (size - pos < ZOPFLI_MIN_MATCH) { |
|
10676
|
7063 |
17559 |
if (pos + limit > size) { |
|
10689
|
24170 |
452 |
dist = p < pp ? pp - p : ((ZOPFLI_WINDOW_SIZE - p) + pp); |
|
10692
|
24170 |
452 |
while (dist < ZOPFLI_WINDOW_SIZE) { |
|
10699
|
24170 |
0 |
if (dist > 0) { |
|
10706
|
24170 |
0 |
if (pos + bestlength >= size |
|
10707
|
24170 |
0 |
|| *(scan + bestlength) == *(match + bestlength)) { |
|
10711
|
0 |
24170 |
if (same0 > 2 && *scan == *match) { |
|
|
0 |
0 |
if (same0 > 2 && *scan == *match) { |
|
10714
|
0 |
0 |
if (same > limit) same = limit; |
|
10723
|
24170 |
0 |
if (currentlength > bestlength) { |
|
10724
|
24122 |
48 |
if (sublen) { |
|
10726
|
5129488 |
24122 |
for (j = bestlength + 1; j <= currentlength; j++) { |
|
10732
|
24170 |
0 |
if (currentlength >= limit) break; |
|
10739
|
0 |
0 |
if (hhead != h->head2 && bestlength >= h->same[hpos] && |
|
|
0 |
0 |
if (hhead != h->head2 && bestlength >= h->same[hpos] && |
|
|
0 |
0 |
if (hhead != h->head2 && bestlength >= h->same[hpos] && |
|
10751
|
0 |
0 |
if (p == pp) break; /* Uninited prev value. */ |
|
10753
|
0 |
0 |
dist += p < pp ? pp - p : ((ZOPFLI_WINDOW_SIZE - p) + pp); |
|
10757
|
0 |
0 |
if (chain_counter <= 0) break; |
|
10780
|
0 |
7 |
? instart - ZOPFLI_WINDOW_SIZE : 0; |
|
10791
|
0 |
7 |
if (instart == inend) return; |
|
10795
|
9 |
7 |
for (i = windowstart; i < instart; i++) { |
|
10799
|
134 |
7 |
for (i = instart; i < inend; i++) { |
|
10809
|
6 |
128 |
if (match_available) { |
|
10811
|
0 |
6 |
if (lengthscore > prevlengthscore + 1) { |
|
10813
|
0 |
0 |
if (lengthscore >= ZOPFLI_MIN_MATCH && leng < ZOPFLI_MAX_MATCH) { |
|
|
0 |
0 |
if (lengthscore >= ZOPFLI_MIN_MATCH && leng < ZOPFLI_MAX_MATCH) { |
|
10827
|
750 |
6 |
for (j = 2; j < leng; j++) { |
|
10835
|
74 |
54 |
else if (lengthscore >= ZOPFLI_MIN_MATCH && leng < ZOPFLI_MAX_MATCH) { |
|
|
6 |
68 |
else if (lengthscore >= ZOPFLI_MIN_MATCH && leng < ZOPFLI_MAX_MATCH) { |
|
10845
|
68 |
54 |
if (lengthscore >= ZOPFLI_MIN_MATCH) { |
|
10852
|
17476 |
122 |
for (j = 1; j < leng; j++) { |
|
13888
|
9216 |
32 |
for (i = 0; i < ZOPFLI_NUM_LL; i++) { |
|
13892
|
1024 |
32 |
for (i = 0; i < ZOPFLI_NUM_D; i++) { |
|
13917
|
11520 |
72 |
for (i = 0; i < n; i++) { |
|
13918
|
3860 |
7660 |
if ((Ran(state) >> 4) % 3 == 0) freqs[i] = freqs[Ran(state) % n]; |
|
13930
|
17280 |
60 |
for (i = 0; i < ZOPFLI_NUM_LL; i++) stats->litlens[i] = 0; |
|
13931
|
1920 |
60 |
for (i = 0; i < ZOPFLI_NUM_D; i++) stats->dists[i] = 0; |
|
13946
|
9180 |
794546 |
if (dist == 0) { |
|
13947
|
9180 |
0 |
if (litlen <= 143) return 8; |
|
13954
|
43002 |
751544 |
if (lsym <= 279) cost += 7; |
|
13967
|
137700 |
7709449 |
if (dist == 0) { |
|
13999
|
16384 |
64 |
for (i = 3; i < 259; i++) { |
|
14001
|
76 |
16308 |
if (c < mincost) { |
|
14008
|
1920 |
64 |
for (i = 0; i < 30; i++) { |
|
14010
|
78 |
1842 |
if (c < mincost) { |
|
14049
|
0 |
64 |
? instart - ZOPFLI_WINDOW_SIZE : 0; |
|
14054
|
0 |
64 |
if (instart == inend) return 0; |
|
14058
|
144 |
64 |
for (i = windowstart; i < instart; i++) { |
|
14062
|
146880 |
64 |
for (i = 1; i < blocksize + 1; i++) costs[i] = ZOPFLI_LARGE_FLOAT; |
|
14066
|
146880 |
64 |
for (i = instart; i < inend; i++) { |
|
14073
|
0 |
146880 |
if (h->same[i & ZOPFLI_WINDOW_MASK] > ZOPFLI_MAX_MATCH * 2 |
|
14074
|
0 |
0 |
&& i > instart + ZOPFLI_MAX_MATCH + 1 |
|
14075
|
0 |
0 |
&& i + ZOPFLI_MAX_MATCH * 2 + 1 < inend |
|
14076
|
0 |
0 |
&& h->same[(i - ZOPFLI_MAX_MATCH) & ZOPFLI_WINDOW_MASK] |
|
14082
|
0 |
0 |
for (k = 0; k < ZOPFLI_MAX_MATCH; k++) { |
|
14096
|
146880 |
0 |
if (i + 1 <= inend) { |
|
14099
|
1046 |
145834 |
if (newCost < costs[j + 1]) { |
|
14107
|
36397824 |
146880 |
for (k = 3; k <= kend; k++) { |
|
14112
|
27912197 |
8485627 |
if (costs[j + k] <= mincostaddcostj) continue; |
|
14116
|
190816 |
8294811 |
if (newCost < costs[j + k]) { |
|
14139
|
0 |
64 |
if (size == 0) return; |
|
14141
|
352 |
672 |
ZOPFLI_APPEND_DATA(length_array[index], path, pathsize); |
|
|
64 |
288 |
ZOPFLI_APPEND_DATA(length_array[index], path, pathsize); |
|
14146
|
64 |
960 |
if (index == 0) break; |
|
14150
|
496 |
64 |
for (index = 0; index < *pathsize / 2; index++) { |
|
14163
|
0 |
64 |
? instart - ZOPFLI_WINDOW_SIZE : 0; |
|
14167
|
0 |
64 |
if (instart == inend) return; |
|
14171
|
144 |
64 |
for (i = windowstart; i < instart; i++) { |
|
14176
|
1024 |
64 |
for (i = 0; i < pathsize; i++) { |
|
14185
|
592 |
432 |
if (length >= ZOPFLI_MIN_MATCH) { |
|
14202
|
145856 |
1024 |
for (j = 1; j < length; j++) { |
|
14219
|
1024 |
64 |
for (i = 0; i < store->size; i++) { |
|
14220
|
432 |
592 |
if (store->dists[i] == 0) { |
|
14288
|
0 |
4 |
if (!costs) exit(-1); /* Allocation failed. */ |
|
14289
|
0 |
4 |
if (!length_array) exit(-1); /* Allocation failed. */ |
|
14305
|
60 |
4 |
for (i = 0; i < numiterations; i++) { |
|
14312
|
60 |
0 |
if (s->options->verbose_more || (s->options->verbose && cost < bestcost)) { |
|
|
0 |
60 |
if (s->options->verbose_more || (s->options->verbose && cost < bestcost)) { |
|
|
0 |
0 |
if (s->options->verbose_more || (s->options->verbose && cost < bestcost)) { |
|
14315
|
4 |
56 |
if (cost < bestcost) { |
|
14324
|
32 |
28 |
if (lastrandomstep != -1) { |
|
14331
|
36 |
24 |
if (i > 5 && cost == lastcost) { |
|
|
36 |
0 |
if (i > 5 && cost == lastcost) { |
|
14362
|
0 |
4 |
if (!costs) exit(-1); /* Allocation failed. */ |
|
14363
|
0 |
4 |
if (!length_array) exit(-1); /* Allocation failed. */ |
|
14670
|
1299 |
9 |
for (i = 0; i < n; i++) { |
|
14676
|
136 |
9 |
for (bits = 0; bits <= maxbits; bits++) { |
|
14679
|
1299 |
9 |
for (i = 0; i < n; i++) { |
|
14686
|
127 |
9 |
for (bits = 1; bits <= maxbits; bits++) { |
|
14692
|
1299 |
9 |
for (i = 0; i < n; i++) { |
|
14694
|
970 |
329 |
if (len != 0) { |
|
14709
|
42240 |
264 |
for (i = 0; i < n; ++i) { |
|
14712
|
36 |
228 |
log2sum = (sum == 0 ? log(n) : log(sum)) * kInvLog2; |
|
14713
|
42240 |
264 |
for (i = 0; i < n; ++i) { |
|
14717
|
40893 |
1347 |
if (count[i] == 0) bitlengths[i] = log2sum; |
|
14724
|
0 |
42240 |
if (bitlengths[i] < 0 && bitlengths[i] > -1e-5) bitlengths[i] = 0; |
|
|
0 |
0 |
if (bitlengths[i] < 0 && bitlengths[i] > -1e-5) bitlengths[i] = 0; |
|
16248
|
0 |
0 |
while (size > 0) { |
|
16251
|
0 |
0 |
while (amount > 0) { |
|
16275
|
0 |
0 |
ZOPFLI_APPEND_DATA(cmfflg / 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(cmfflg / 256, out, outsize); |
|
16276
|
0 |
0 |
ZOPFLI_APPEND_DATA(cmfflg % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(cmfflg % 256, out, outsize); |
|
16281
|
0 |
0 |
ZOPFLI_APPEND_DATA((checksum >> 24) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((checksum >> 24) % 256, out, outsize); |
|
16282
|
0 |
0 |
ZOPFLI_APPEND_DATA((checksum >> 16) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((checksum >> 16) % 256, out, outsize); |
|
16283
|
0 |
0 |
ZOPFLI_APPEND_DATA((checksum >> 8) % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA((checksum >> 8) % 256, out, outsize); |
|
16284
|
0 |
0 |
ZOPFLI_APPEND_DATA(checksum % 256, out, outsize); |
|
|
0 |
0 |
ZOPFLI_APPEND_DATA(checksum % 256, out, outsize); |
|
16286
|
0 |
0 |
if (options->verbose) { |
|
17521
|
0 |
0 |
if (!file) return 0; |
|
17525
|
0 |
0 |
if(*outsize > 2147483647) { |
|
17533
|
0 |
0 |
if (*outsize && (*out)) { |
|
|
0 |
0 |
if (*outsize && (*out)) { |
|
17535
|
0 |
0 |
if (testsize != *outsize) { |
|
17556
|
0 |
0 |
if (file == NULL) { |
|
17576
|
0 |
0 |
if (!LoadFile(infilename, &in, &insize)) { |
|
17583
|
0 |
0 |
if (outfilename) { |
|
17603
|
0 |
0 |
if (!result) exit(-1); /* Allocation failed. */ |
|
17622
|
0 |
0 |
for (i = 1; i < argc; i++) { |
|
17624
|
0 |
0 |
if (StringsEqual(arg, "-v")) options.verbose = 1; |
|
17625
|
0 |
0 |
else if (StringsEqual(arg, "-c")) output_to_stdout = 1; |
|
17626
|
0 |
0 |
else if (StringsEqual(arg, "--deflate")) { |
|
17629
|
0 |
0 |
else if (StringsEqual(arg, "--zlib")) output_type = ZOPFLI_FORMAT_ZLIB; |
|
17630
|
0 |
0 |
else if (StringsEqual(arg, "--gzip")) output_type = ZOPFLI_FORMAT_GZIP; |
|
17631
|
0 |
0 |
else if (StringsEqual(arg, "--splitlast")) /* Ignore */; |
|
17632
|
0 |
0 |
else if (arg[0] == '-' && arg[1] == '-' && arg[2] == 'i' |
|
|
0 |
0 |
else if (arg[0] == '-' && arg[1] == '-' && arg[2] == 'i' |
|
|
0 |
0 |
else if (arg[0] == '-' && arg[1] == '-' && arg[2] == 'i' |
|
17633
|
0 |
0 |
&& arg[3] >= '0' && arg[3] <= '9') { |
|
|
0 |
0 |
&& arg[3] >= '0' && arg[3] <= '9') { |
|
17636
|
0 |
0 |
else if (StringsEqual(arg, "-h")) { |
|
17655
|
0 |
0 |
if (options.numiterations < 1) { |
|
17660
|
0 |
0 |
for (i = 1; i < argc; i++) { |
|
17661
|
0 |
0 |
if (argv[i][0] != '-') { |
|
17664
|
0 |
0 |
if (output_to_stdout) { |
|
17666
|
0 |
0 |
} else if (output_type == ZOPFLI_FORMAT_GZIP) { |
|
17668
|
0 |
0 |
} else if (output_type == ZOPFLI_FORMAT_ZLIB) { |
|
17674
|
0 |
0 |
if (options.verbose && outfilename) { |
|
|
0 |
0 |
if (options.verbose && outfilename) { |
|
17682
|
0 |
0 |
if (!filename) { |
|
18991
|
3 |
0 |
if (output_type == ZOPFLI_FORMAT_GZIP) { |
|
18993
|
0 |
0 |
} else if (output_type == ZOPFLI_FORMAT_ZLIB) { |
|
18995
|
0 |
0 |
} else if (output_type == ZOPFLI_FORMAT_DEFLATE) { |