[git commit] bzip2: runningOrder[] values are always 0..255, make it uint8

Denys Vlasenko vda.linux at googlemail.com
Sat Feb 3 16:44:00 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=c364d32ccc030c04b5289f0ffea0197f4ff7e666
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
mainSort                                            1171    1124     -47

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 archival/libarchive/bz/blocksort.c     | 9 ++++-----
 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,
 	int32_t  i, j;
 	Bool     bigDone[256];
 	/* bbox: moved to EState to save stack
-	int32_t  runningOrder[256];
+	uint8_t  runningOrder[256];
 	int32_t  copyStart[256];
 	int32_t  copyEnd  [256];
 	*/
@@ -833,16 +833,15 @@ 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];
+				unsigned vv;
+				vv = runningOrder[i]; /* uint8[] */
 				j = i;
 				while (BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv)) {
 					runningOrder[j] = runningOrder[j-h];
 					j = j - h;
 					if (j <= (h - 1))
-						goto zero;
+						break;
 				}
- zero:
 				runningOrder[j] = vv;
 			}
 		} 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 {
 	int32_t  BZ2_hbMakeCodeLengths__weight[BZ_MAX_ALPHA_SIZE * 2];
 	int32_t  BZ2_hbMakeCodeLengths__parent[BZ_MAX_ALPHA_SIZE * 2];
 
-	int32_t  mainSort__runningOrder[256];
+	uint8_t  mainSort__runningOrder[256];
 	int32_t  mainSort__copyStart[256];
 	int32_t  mainSort__copyEnd[256];
 } EState;


More information about the busybox-cvs mailing list