aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archival/libarchive/bz/blocksort.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/archival/libarchive/bz/blocksort.c b/archival/libarchive/bz/blocksort.c
index a1ee59224..578f6d41f 100644
--- a/archival/libarchive/bz/blocksort.c
+++ b/archival/libarchive/bz/blocksort.c
@@ -468,15 +468,16 @@ void mainSimpleSort(uint32_t* ptr,
468 int32_t d, 468 int32_t d,
469 int32_t* budget) 469 int32_t* budget)
470{ 470{
471 int32_t bigN; 471 /* At which increment to start? */
472 int hp; 472 int hp = 0;
473 473 {
474 bigN = hi - lo + 1; 474 int bigN = hi - lo;
475 if (bigN < 2) return; 475 if (bigN <= 0)
476 476 return;
477 hp = 0; 477 while (incs[hp] <= bigN)
478 while (incs[hp] < bigN) hp++; 478 hp++;
479 hp--; 479 hp--;
480 }
480 481
481 for (; hp >= 0; hp--) { 482 for (; hp >= 0; hp--) {
482 int32_t i; 483 int32_t i;
@@ -754,22 +755,22 @@ void mainSort(EState* state,
754#if CONFIG_BZIP2_FAST >= 2 755#if CONFIG_BZIP2_FAST >= 2
755 for (; i >= 3; i -= 4) { 756 for (; i >= 3; i -= 4) {
756 quadrant[i] = 0; 757 quadrant[i] = 0;
757 j = (j >> 8) | (((uint16_t)block[i]) << 8); 758 j = (j >> 8) | (((unsigned)block[i]) << 8);
758 ftab[j]++; 759 ftab[j]++;
759 quadrant[i-1] = 0; 760 quadrant[i-1] = 0;
760 j = (j >> 8) | (((uint16_t)block[i-1]) << 8); 761 j = (j >> 8) | (((unsigned)block[i-1]) << 8);
761 ftab[j]++; 762 ftab[j]++;
762 quadrant[i-2] = 0; 763 quadrant[i-2] = 0;
763 j = (j >> 8) | (((uint16_t)block[i-2]) << 8); 764 j = (j >> 8) | (((unsigned)block[i-2]) << 8);
764 ftab[j]++; 765 ftab[j]++;
765 quadrant[i-3] = 0; 766 quadrant[i-3] = 0;
766 j = (j >> 8) | (((uint16_t)block[i-3]) << 8); 767 j = (j >> 8) | (((unsigned)block[i-3]) << 8);
767 ftab[j]++; 768 ftab[j]++;
768 } 769 }
769#endif 770#endif
770 for (; i >= 0; i--) { 771 for (; i >= 0; i--) {
771 quadrant[i] = 0; 772 quadrant[i] = 0;
772 j = (j >> 8) | (((uint16_t)block[i]) << 8); 773 j = (j >> 8) | (((unsigned)block[i]) << 8);
773 ftab[j]++; 774 ftab[j]++;
774 } 775 }
775 776