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
This commit is contained in:
Denis Vlasenko 2007-10-16 14:07:41 +00:00
parent 008eda2c54
commit 686b0ef7d8
3 changed files with 7 additions and 1 deletions

View File

@ -363,6 +363,7 @@ case_BZ_M_FLUSHING:
/*---------------------------------------------------*/ /*---------------------------------------------------*/
#if ENABLE_FEATURE_CLEAN_UP
static static
void BZ2_bzCompressEnd(bz_stream *strm) void BZ2_bzCompressEnd(bz_stream *strm)
{ {
@ -375,6 +376,7 @@ void BZ2_bzCompressEnd(bz_stream *strm)
free(s->crc32table); free(s->crc32table);
free(strm->state); free(strm->state);
} }
#endif
/*---------------------------------------------------*/ /*---------------------------------------------------*/

View File

@ -43,20 +43,22 @@ in the file LICENSE.
#define BZ_CONFIG_ERROR (-9) #define BZ_CONFIG_ERROR (-9)
typedef struct bz_stream { typedef struct bz_stream {
void *state;
char *next_in; char *next_in;
char *next_out; char *next_out;
unsigned avail_in; unsigned avail_in;
unsigned avail_out; unsigned avail_out;
/*unsigned long long total_in;*/ /*unsigned long long total_in;*/
unsigned long long total_out; unsigned long long total_out;
void *state;
} bz_stream; } bz_stream;
/*-- Core (low-level) library functions --*/ /*-- Core (low-level) library functions --*/
static void BZ2_bzCompressInit(bz_stream *strm, int blockSize100k); static void BZ2_bzCompressInit(bz_stream *strm, int blockSize100k);
static int BZ2_bzCompress(bz_stream *strm, int action); static int BZ2_bzCompress(bz_stream *strm, int action);
#if ENABLE_FEATURE_CLEAN_UP
static void BZ2_bzCompressEnd(bz_stream *strm); static void BZ2_bzCompressEnd(bz_stream *strm);
#endif
/*-------------------------------------------------------------*/ /*-------------------------------------------------------------*/
/*--- end bzlib.h ---*/ /*--- end bzlib.h ---*/

View File

@ -116,7 +116,9 @@ USE_DESKTOP(long long) int bz_write_tail(bz_stream *strm, void *wbuf)
total = 0 USE_DESKTOP( + strm->total_out ); total = 0 USE_DESKTOP( + strm->total_out );
err: err:
#if ENABLE_FEATURE_CLEAN_UP
BZ2_bzCompressEnd(strm); BZ2_bzCompressEnd(strm);
#endif
return total; return total;
} }