From 686b0ef7d83f11741c21aae292558671e5298799 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Tue, 16 Oct 2007 14:07:41 +0000 Subject: [PATCH] bzip2: move state pointer to the offset 0 (smaller code) ifdef out DecompressEnd if FEATURE_CLEAN_UP is not seleted fallbackSort 1655 1672 +17 mainSort 2447 2458 +11 bzip2_main 109 119 +10 .rodata 123466 123469 +3 generateMTFValues 433 435 +2 handle_compress 355 356 +1 BZ2_bzCompress 79 78 -1 prepare_new_block 55 48 -7 compressStream 547 503 -44 sendMTFValues 2225 2140 -85 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 6/4 up/down: 44/-137) Total: -93 bytes text data bss dec hex filename 676421 2538 12104 691063 a8b77 busybox_old 676328 2538 12104 690970 a8b1a busybox_unstripped --- archival/bz/bzlib.c | 2 ++ archival/bz/bzlib.h | 4 +++- archival/bzip2.c | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/archival/bz/bzlib.c b/archival/bz/bzlib.c index f27050a3c..cdb596cb1 100644 --- a/archival/bz/bzlib.c +++ b/archival/bz/bzlib.c @@ -363,6 +363,7 @@ case_BZ_M_FLUSHING: /*---------------------------------------------------*/ +#if ENABLE_FEATURE_CLEAN_UP static void BZ2_bzCompressEnd(bz_stream *strm) { @@ -375,6 +376,7 @@ void BZ2_bzCompressEnd(bz_stream *strm) free(s->crc32table); free(strm->state); } +#endif /*---------------------------------------------------*/ diff --git a/archival/bz/bzlib.h b/archival/bz/bzlib.h index 602aab926..1bb811c4a 100644 --- a/archival/bz/bzlib.h +++ b/archival/bz/bzlib.h @@ -43,20 +43,22 @@ in the file LICENSE. #define BZ_CONFIG_ERROR (-9) typedef struct bz_stream { + void *state; char *next_in; char *next_out; unsigned avail_in; unsigned avail_out; /*unsigned long long total_in;*/ unsigned long long total_out; - void *state; } bz_stream; /*-- Core (low-level) library functions --*/ static void BZ2_bzCompressInit(bz_stream *strm, int blockSize100k); static int BZ2_bzCompress(bz_stream *strm, int action); +#if ENABLE_FEATURE_CLEAN_UP static void BZ2_bzCompressEnd(bz_stream *strm); +#endif /*-------------------------------------------------------------*/ /*--- end bzlib.h ---*/ diff --git a/archival/bzip2.c b/archival/bzip2.c index c750a056f..67df14416 100644 --- a/archival/bzip2.c +++ b/archival/bzip2.c @@ -116,7 +116,9 @@ USE_DESKTOP(long long) int bz_write_tail(bz_stream *strm, void *wbuf) total = 0 USE_DESKTOP( + strm->total_out ); err: +#if ENABLE_FEATURE_CLEAN_UP BZ2_bzCompressEnd(strm); +#endif return total; }