diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2018-02-03 22:52:11 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2018-02-03 22:52:55 +0100 |
commit | 0e60a36c929e57e47d5de8e1ac0e53d4ec185a70 (patch) | |
tree | 7b4d97fa01ff39c203efd36863c6653b3afb3a11 /archival/libarchive/bz | |
parent | 86be6d5ba9df8b8237a8c3edc2a844aaa63bd559 (diff) |
bzip2: move runningOrder[] back to stack - 256 bytes is not much
function old new delta
mainSort 1119 1108 -11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'archival/libarchive/bz')
-rw-r--r-- | archival/libarchive/bz/blocksort.c | 13 | ||||
-rw-r--r-- | archival/libarchive/bz/bzlib_private.h | 1 |
2 files changed, 8 insertions, 6 deletions
diff --git a/archival/libarchive/bz/blocksort.c b/archival/libarchive/bz/blocksort.c index 7c5b6c552..0a9a597d0 100644 --- a/archival/libarchive/bz/blocksort.c +++ b/archival/libarchive/bz/blocksort.c @@ -113,9 +113,8 @@ void fallbackQSort3(uint32_t* fmap, int32_t loSt, int32_t hiSt) { - int32_t unLo, unHi, ltLo, gtHi, n, m; - int32_t sp, lo, hi; - uint32_t med, r, r3; + int32_t sp; + uint32_t r; int32_t stackLo[FALLBACK_QSORT_STACK_SIZE]; int32_t stackHi[FALLBACK_QSORT_STACK_SIZE]; @@ -125,6 +124,11 @@ void fallbackQSort3(uint32_t* fmap, fpush(loSt, hiSt); while (sp > 0) { + int32_t unLo, unHi, ltLo, gtHi, n, m; + int32_t lo, hi; + uint32_t med; + uint32_t r3; + AssertH(sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004); fpop(lo, hi); @@ -730,12 +734,11 @@ void mainSort(EState* state) { int32_t i, j; Bool bigDone[256]; - /* bbox: moved to EState to save stack uint8_t runningOrder[256]; + /* bbox: moved to EState to save stack int32_t copyStart[256]; int32_t copyEnd [256]; */ -#define runningOrder (state->mainSort__runningOrder) #define copyStart (state->mainSort__copyStart) #define copyEnd (state->mainSort__copyEnd) diff --git a/archival/libarchive/bz/bzlib_private.h b/archival/libarchive/bz/bzlib_private.h index 8b8bbe3eb..ef75ef08a 100644 --- a/archival/libarchive/bz/bzlib_private.h +++ b/archival/libarchive/bz/bzlib_private.h @@ -196,7 +196,6 @@ typedef struct EState { int32_t BZ2_hbMakeCodeLengths__weight[BZ_MAX_ALPHA_SIZE * 2]; int32_t BZ2_hbMakeCodeLengths__parent[BZ_MAX_ALPHA_SIZE * 2]; - uint8_t mainSort__runningOrder[256]; int32_t mainSort__copyStart[256]; int32_t mainSort__copyEnd[256]; } EState; |