diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-02-03 17:44:00 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-02-03 17:44:00 +0100 |
commit | c364d32ccc030c04b5289f0ffea0197f4ff7e666 (patch) | |
tree | 1a3b780ada8c85296bad2ffdd2bd34ba76aa3588 | |
parent | df23f55e395d78d9cfc0fc5054651f5da58dcf25 (diff) | |
download | busybox-w32-c364d32ccc030c04b5289f0ffea0197f4ff7e666.tar.gz busybox-w32-c364d32ccc030c04b5289f0ffea0197f4ff7e666.tar.bz2 busybox-w32-c364d32ccc030c04b5289f0ffea0197f4ff7e666.zip |
bzip2: runningOrder[] values are always 0..255, make it uint8
function old new delta
mainSort 1171 1124 -47
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | archival/libarchive/bz/blocksort.c | 9 | ||||
-rw-r--r-- | archival/libarchive/bz/bzlib_private.h | 2 |
2 files changed, 5 insertions, 6 deletions
diff --git a/archival/libarchive/bz/blocksort.c b/archival/libarchive/bz/blocksort.c index 473244db0..c2d5f15c6 100644 --- a/archival/libarchive/bz/blocksort.c +++ b/archival/libarchive/bz/blocksort.c | |||
@@ -732,7 +732,7 @@ void mainSort(EState* state, | |||
732 | int32_t i, j; | 732 | int32_t i, j; |
733 | Bool bigDone[256]; | 733 | Bool bigDone[256]; |
734 | /* bbox: moved to EState to save stack | 734 | /* bbox: moved to EState to save stack |
735 | int32_t runningOrder[256]; | 735 | uint8_t runningOrder[256]; |
736 | int32_t copyStart[256]; | 736 | int32_t copyStart[256]; |
737 | int32_t copyEnd [256]; | 737 | int32_t copyEnd [256]; |
738 | */ | 738 | */ |
@@ -833,16 +833,15 @@ void mainSort(EState* state, | |||
833 | /*h = h / 3;*/ | 833 | /*h = h / 3;*/ |
834 | h = (h * 171) >> 9; /* bbox: fast h/3 */ | 834 | h = (h * 171) >> 9; /* bbox: fast h/3 */ |
835 | for (i = h; i <= 255; i++) { | 835 | for (i = h; i <= 255; i++) { |
836 | int32_t vv; | 836 | unsigned vv; |
837 | vv = runningOrder[i]; | 837 | vv = runningOrder[i]; /* uint8[] */ |
838 | j = i; | 838 | j = i; |
839 | while (BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv)) { | 839 | while (BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv)) { |
840 | runningOrder[j] = runningOrder[j-h]; | 840 | runningOrder[j] = runningOrder[j-h]; |
841 | j = j - h; | 841 | j = j - h; |
842 | if (j <= (h - 1)) | 842 | if (j <= (h - 1)) |
843 | goto zero; | 843 | break; |
844 | } | 844 | } |
845 | zero: | ||
846 | runningOrder[j] = vv; | 845 | runningOrder[j] = vv; |
847 | } | 846 | } |
848 | } while (h != 1); | 847 | } while (h != 1); |
diff --git a/archival/libarchive/bz/bzlib_private.h b/archival/libarchive/bz/bzlib_private.h index 8e44a8e64..4acaef8b8 100644 --- a/archival/libarchive/bz/bzlib_private.h +++ b/archival/libarchive/bz/bzlib_private.h | |||
@@ -192,7 +192,7 @@ typedef struct EState { | |||
192 | int32_t BZ2_hbMakeCodeLengths__weight[BZ_MAX_ALPHA_SIZE * 2]; | 192 | int32_t BZ2_hbMakeCodeLengths__weight[BZ_MAX_ALPHA_SIZE * 2]; |
193 | int32_t BZ2_hbMakeCodeLengths__parent[BZ_MAX_ALPHA_SIZE * 2]; | 193 | int32_t BZ2_hbMakeCodeLengths__parent[BZ_MAX_ALPHA_SIZE * 2]; |
194 | 194 | ||
195 | int32_t mainSort__runningOrder[256]; | 195 | uint8_t mainSort__runningOrder[256]; |
196 | int32_t mainSort__copyStart[256]; | 196 | int32_t mainSort__copyStart[256]; |
197 | int32_t mainSort__copyEnd[256]; | 197 | int32_t mainSort__copyEnd[256]; |
198 | } EState; | 198 | } EState; |