aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-02-03 17:44:00 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-02-03 17:44:00 +0100
commitc364d32ccc030c04b5289f0ffea0197f4ff7e666 (patch)
tree1a3b780ada8c85296bad2ffdd2bd34ba76aa3588
parentdf23f55e395d78d9cfc0fc5054651f5da58dcf25 (diff)
downloadbusybox-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.c9
-rw-r--r--archival/libarchive/bz/bzlib_private.h2
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;