bzip2: move state pointer to the offset 0 (smaller code)
authorDenis Vlasenko <vda.linux@googlemail.com>
Tue, 16 Oct 2007 14:07:41 +0000 (14:07 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Tue, 16 Oct 2007 14:07:41 +0000 (14:07 -0000)
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
archival/bz/bzlib.h
archival/bzip2.c

index f27050a3c161c875bdfd0aeebdc413d10c0e9817..cdb596cb16d4ca94da8ee63fa88f4ad4fe8e5442 100644 (file)
@@ -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
 
 
 /*---------------------------------------------------*/
index 602aab9260a8b9f9f581e8937113768d10aa7637..1bb811c4a18a93a1e937c843045857779fa4f62e 100644 (file)
@@ -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 ---*/
index c750a056fac5c96a2aa6d5e279ce6b5926cfb292..67df144168579e21e465cf3f919ecf404cacc361 100644 (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 );
  err:
+#if ENABLE_FEATURE_CLEAN_UP
        BZ2_bzCompressEnd(strm);
+#endif
        return total;
 }