aboutsummaryrefslogtreecommitdiff
path: root/archival/libarchive
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-02-03 16:43:33 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2018-02-03 16:43:33 +0100
commitaaa3818a75bb64bb96a1cda9412162aa7a8a44de (patch)
treeff17957de70d56d5376b437687799e7730425390 /archival/libarchive
parente59e5ff96e9461dc658748509ec41408c140f6fb (diff)
downloadbusybox-aaa3818a75bb64bb96a1cda9412162aa7a8a44de.tar.gz
bzip2: remove redundant loop termination check in mainSort()
function old new delta mainSort 1202 1192 -10 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival/libarchive')
-rw-r--r--archival/libarchive/bz/blocksort.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/archival/libarchive/bz/blocksort.c b/archival/libarchive/bz/blocksort.c
index 0b614ce08..19341369c 100644
--- a/archival/libarchive/bz/blocksort.c
+++ b/archival/libarchive/bz/blocksort.c
@@ -825,7 +825,6 @@ void mainSort(EState* state,
}
{
- int32_t vv;
/* bbox: was: int32_t h = 1; */
/* do h = 3 * h + 1; while (h <= 256); */
uint32_t h = 364;
@@ -834,6 +833,7 @@ void mainSort(EState* state,
/*h = h / 3;*/
h = (h * 171) >> 9; /* bbox: fast h/3 */
for (i = h; i <= 255; i++) {
+ int32_t vv;
vv = runningOrder[i];
j = i;
while (BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv)) {
@@ -854,7 +854,7 @@ void mainSort(EState* state,
numQSorted = 0;
- for (i = 0; i <= 255; i++) {
+ for (i = 0; /*i <= 255*/; i++) {
/*
* Process big buckets, starting with the least full.
@@ -974,7 +974,10 @@ void mainSort(EState* state,
*/
bigDone[ss] = True;
- if (i < 255) {
+ if (i == 255)
+ break;
+
+ {
int32_t bbStart = ftab[ss << 8] & CLEARMASK;
int32_t bbSize = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart;
int32_t shifts = 0;