From 77cb319b8c4e000cf1a19856cde106b8634e0db1 Mon Sep 17 00:00:00 2001 From: justin1014 Date: Tue, 1 Oct 2002 01:57:14 +0000 Subject: [PATCH] made bzip2 smaller than zlib mode !!! git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@1241 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/bzip2/bzlib.c | 210 ++++------------------ Source/bzip2/bzlib.h | 6 - Source/bzip2/bzlib_private.h | 27 +-- Source/bzip2/compress.c | 25 --- Source/bzip2/decompress.c | 20 +-- Source/bzip2/randtable.c | 299 ------------------------------- Source/exehead/config.h | 10 +- Source/exehead/exehead-bzip2.dsp | 5 - Source/exehead/fileform.c | 5 +- 9 files changed, 38 insertions(+), 569 deletions(-) delete mode 100644 Source/bzip2/randtable.c diff --git a/Source/bzip2/bzlib.c b/Source/bzip2/bzlib.c index 5ca945fa..0e2ee72a 100644 --- a/Source/bzip2/bzlib.c +++ b/Source/bzip2/bzlib.c @@ -162,10 +162,6 @@ int BZ_API(BZ2_bzCompressInit) s->ptr = (UInt32*)s->arr1; strm->state = s; -// strm->total_in_lo32 = 0; - // strm->total_in_hi32 = 0; -// strm->total_out_lo32 = 0; -// strm->total_out_hi32 = 0; init_RL ( s ); prepare_new_block ( s ); return BZ_OK; @@ -451,28 +447,9 @@ int BZ_API(BZ2_bzDecompressInit) { DState* s=&local_state; -// s = BZALLOC( sizeof(DState) ); - // if (s == NULL) return BZ_MEM_ERROR; s->strm = strm; strm->state = s; s->state = BZ_X_BLKHDR_1; - // s->bsLive = 0; -// s->bsBuff = 0; -// strm->total_in_lo32 = 0; - // strm->total_in_hi32 = 0; -// strm->total_out_lo32 = 0; - // strm->total_out_hi32 = 0; -#ifdef NSIS_COMPRESS_BZIP2_SMALLMODE -// s->ll16 = BZALLOC( NSIS_COMPRESS_BZIP2_LEVEL*100000 * sizeof(UInt16) ); - // s->ll4 = BZALLOC( - // ((1 + NSIS_COMPRESS_BZIP2_LEVEL*100000) >> 1) * sizeof(UChar) - // ); - // if (s->ll16 == NULL || s->ll4 == NULL) return (BZ_MEM_ERROR); -#else - //s->tt = BZALLOC( NSIS_COMPRESS_BZIP2_LEVEL * 100000 * sizeof(Int32) ); - //if (s->tt == NULL) return (BZ_MEM_ERROR); -#endif - // s->currBlockNo = 0; return BZ_OK; } @@ -502,92 +479,42 @@ static void unRLE_obuf_to_output_SMALL ( DState* s ) { UChar k1; - - if (s->blockRandomised) { - - while (True) { - /* try to finish existing run */ - while (True) { - if (s->strm->avail_out == 0) return; - if (s->state_out_len == 0) break; - *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; - s->state_out_len--; - s->strm->next_out++; - s->strm->avail_out--; + while (True) { + /* try to finish existing run */ + while (True) { + if (s->strm->avail_out == 0) return; + if (s->state_out_len == 0) break; + *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; + s->state_out_len--; + s->strm->next_out++; + s->strm->avail_out--; // s->strm->total_out_lo32++; -// if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } +// if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; + } - /* can a new run be started? */ - if (s->nblock_used == s->save.nblock+1) return; + /* can a new run be started? */ + if (s->nblock_used == s->save.nblock+1) return; + s->state_out_len = 1; + s->state_out_ch = s->k0; + BZ_GET_SMALL(k1); s->nblock_used++; + if (s->nblock_used == s->save.nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; - s->state_out_len = 1; - s->state_out_ch = s->k0; - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save.nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; + s->state_out_len = 2; + BZ_GET_SMALL(k1); s->nblock_used++; + if (s->nblock_used == s->save.nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; - s->state_out_len = 2; - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save.nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; + s->state_out_len = 3; + BZ_GET_SMALL(k1); s->nblock_used++; + if (s->nblock_used == s->save.nblock+1) continue; + if (k1 != s->k0) { s->k0 = k1; continue; }; - s->state_out_len = 3; - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save.nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - s->state_out_len = ((Int32)k1) + 4; - BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK; - s->k0 ^= BZ_RAND_MASK; s->nblock_used++; - } - - } else { - - while (True) { - /* try to finish existing run */ - while (True) { - if (s->strm->avail_out == 0) return; - if (s->state_out_len == 0) break; - *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; - s->state_out_len--; - s->strm->next_out++; - s->strm->avail_out--; -// s->strm->total_out_lo32++; - // if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } - - /* can a new run be started? */ - if (s->nblock_used == s->save.nblock+1) return; - - s->state_out_len = 1; - s->state_out_ch = s->k0; - BZ_GET_SMALL(k1); s->nblock_used++; - if (s->nblock_used == s->save.nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 2; - BZ_GET_SMALL(k1); s->nblock_used++; - if (s->nblock_used == s->save.nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 3; - BZ_GET_SMALL(k1); s->nblock_used++; - if (s->nblock_used == s->save.nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - BZ_GET_SMALL(k1); s->nblock_used++; - s->state_out_len = ((Int32)k1) + 4; - BZ_GET_SMALL(s->k0); s->nblock_used++; - } - - } + BZ_GET_SMALL(k1); s->nblock_used++; + s->state_out_len = ((Int32)k1) + 4; + BZ_GET_SMALL(s->k0); s->nblock_used++; + } } #else//!small, fast static @@ -595,54 +522,6 @@ void unRLE_obuf_to_output_FAST ( DState* s ) { UChar k1; - if (s->blockRandomised) { - - while (True) { - /* try to finish existing run */ - while (True) { - if (s->strm->avail_out == 0) return; - if (s->state_out_len == 0) break; - *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; - BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); - s->state_out_len--; - s->strm->next_out++; - s->strm->avail_out--; -// s->strm->total_out_lo32++; -// if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } - - /* can a new run be started? */ - if (s->nblock_used == s->save.nblock+1) return; - - - s->state_out_len = 1; - s->state_out_ch = s->k0; - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save.nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 2; - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save.nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 3; - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save.nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - s->state_out_len = ((Int32)k1) + 4; - BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK; - s->k0 ^= BZ_RAND_MASK; s->nblock_used++; - } - - } else { - /* restore */ // UInt32 c_calculatedBlockCRC = s->calculatedBlockCRC; UChar c_state_out_ch = s->state_out_ch; @@ -711,13 +590,6 @@ void unRLE_obuf_to_output_FAST ( DState* s ) } return_notr: -// total_out_lo32_old = s->strm->total_out_lo32; -// s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out); - // if (s->strm->total_out_lo32 < total_out_lo32_old) - // s->strm->total_out_hi32++; - - /* save */ -// s->calculatedBlockCRC = c_calculatedBlockCRC; s->state_out_ch = c_state_out_ch; s->state_out_len = c_state_out_len; s->nblock_used = c_nblock_used; @@ -727,7 +599,6 @@ void unRLE_obuf_to_output_FAST ( DState* s ) s->strm->next_out = cs_next_out; s->strm->avail_out = cs_avail_out; /* end save */ - } } #endif @@ -761,30 +632,9 @@ int BZ_API(BZ2_bzDecompress) ( bz_stream *strm ) if (s->state != BZ_X_OUTPUT) return r; } } - - AssertH ( 0, 6001 ); - - return 0; /*NOTREACHED*/ } -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzDecompressEnd) ( bz_stream *strm ) -{ - // DState* s; -// s = strm->state; - -#ifndef NSIS_COMPRESS_BZIP2_SMALLMODE -// BZFREE(s->tt); -#else -// BZFREE(s->ll16); - // BZFREE(s->ll4); -#endif - // BZFREE(strm->state); - //strm->state = NULL; - - return BZ_OK; -} #endif diff --git a/Source/bzip2/bzlib.h b/Source/bzip2/bzlib.h index d0d96b0b..f3e300a4 100644 --- a/Source/bzip2/bzlib.h +++ b/Source/bzip2/bzlib.h @@ -91,17 +91,11 @@ typedef struct { char *next_in; unsigned int avail_in; - // unsigned int total_in_lo32; -// unsigned int total_in_hi32; char *next_out; unsigned int avail_out; - // unsigned int total_out_lo32; - //unsigned int total_out_hi32; void *state; - - void *opaque; } bz_stream; diff --git a/Source/bzip2/bzlib_private.h b/Source/bzip2/bzlib_private.h index 0c382027..85a90586 100644 --- a/Source/bzip2/bzlib_private.h +++ b/Source/bzip2/bzlib_private.h @@ -64,7 +64,7 @@ #include - #include "bzlib.h" +#include "bzlib.h" /*-- General stuff. --*/ @@ -123,28 +123,6 @@ typedef unsigned short UInt16; -/*-- Stuff for randomising repetitive blocks. --*/ - -extern Int16 BZ2_rNums[512]; - -#define BZ_RAND_DECLS \ - Int32 rNToGo; \ - Int32 rTPos - -#define BZ_RAND_INIT_MASK \ - s->rNToGo = s->rTPos = 0 - -#define BZ_RAND_MASK (!(s->rNToGo-1)) - -#define BZ_RAND_UPD_MASK \ - if (s->rNToGo == 0) { \ - s->rNToGo = BZ2_rNums[s->rTPos]; \ - if (++s->rTPos == 512) s->rTPos = 0; \ - } \ - s->rNToGo--; - - - /*-- Stuff for doing CRCs. --*/ //extern UInt32 BZ2_crc32Table[256]; @@ -226,7 +204,6 @@ typedef /* run-length-encoding of the input */ UInt32 state_in_ch; Int32 state_in_len; - BZ_RAND_DECLS; /* input and output limits and current posns */ Int32 nblock; @@ -357,8 +334,6 @@ typedef /* for doing the final run-length decoding */ UChar state_out_ch; Int32 state_out_len; - Int32 blockRandomised; - BZ_RAND_DECLS; /* the buffer for bit stream reading */ UInt32 bsBuff; diff --git a/Source/bzip2/compress.c b/Source/bzip2/compress.c index 4019431d..ef45ce2b 100644 --- a/Source/bzip2/compress.c +++ b/Source/bzip2/compress.c @@ -637,25 +637,6 @@ void BZ2_compressBlock ( EState* s, Bool is_last_block ) if (s->nblock > 0) { bsPutUChar ( s, 0x31 ); -#if 0 - bsPutUChar ( s, 0x41 ); - bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 ); - bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 ); -#endif - - /*-- Now the block's CRC, so it is in a known place. --*/ -// bsPutUInt32 ( s, s->blockCRC ); - - /*-- - Now a single bit indicating (non-)randomisation. - As of version 0.9.5, we use a better sorting algorithm - which makes randomisation unnecessary. So always set - the randomised bit to 'no'. Of course, the decoder - still needs to be able to handle randomised blocks - so as to maintain backwards compatibility with - older versions of bzip2. - --*/ - bsW(s,1,0); bsW ( s, 24, s->origPtr ); generateMTFValues ( s ); @@ -667,12 +648,6 @@ void BZ2_compressBlock ( EState* s, Bool is_last_block ) if (is_last_block) { bsPutUChar ( s, 0x17 ); -#if 0 - bsPutUChar ( s, 0x72 ); - bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 ); - bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 ); -#endif -// bsPutUInt32 ( s, s->combinedCRC ); bsFinishWrite ( s ); } } diff --git a/Source/bzip2/decompress.c b/Source/bzip2/decompress.c index 55de91fa..748bdca9 100644 --- a/Source/bzip2/decompress.c +++ b/Source/bzip2/decompress.c @@ -192,8 +192,6 @@ Int32 BZ2_decompress ( DState* s ) s->currBlockNo++; - GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1); - s->origPtr = 0; GET_UCHAR(BZ_X_ORIGPTR_1, uc); s->origPtr = (s->origPtr << 8) | ((Int32)uc); @@ -471,14 +469,7 @@ Int32 BZ2_decompress ( DState* s ) s->tPos = s->origPtr; s->nblock_used = 0; - if (s->blockRandomised) { - BZ_RAND_INIT_MASK; - BZ_GET_SMALL(s->k0); s->nblock_used++; - BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; - } else { - BZ_GET_SMALL(s->k0); s->nblock_used++; - } - + BZ_GET_SMALL(s->k0); s->nblock_used++; } #else//!small @@ -491,14 +482,7 @@ Int32 BZ2_decompress ( DState* s ) s->tPos = s->tt[s->origPtr] >> 8; s->nblock_used = 0; - if (s->blockRandomised) { - BZ_RAND_INIT_MASK; - BZ_GET_FAST(s->k0); s->nblock_used++; - BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; - } else { - BZ_GET_FAST(s->k0); s->nblock_used++; - } - + BZ_GET_FAST(s->k0); s->nblock_used++; #endif RETURN(BZ_OK); diff --git a/Source/bzip2/randtable.c b/Source/bzip2/randtable.c deleted file mode 100644 index 3cb14dc9..00000000 --- a/Source/bzip2/randtable.c +++ /dev/null @@ -1,299 +0,0 @@ -#include "../exehead/config.h" -#if (defined(NSIS_COMPRESS_USE_BZIP2) && defined(NSIS_CONFIG_COMPRESSION_SUPPORT)) || !defined(EXEHEAD) - -/*-------------------------------------------------------------*/ -/*--- Table for randomising repetitive blocks ---*/ -/*--- randtable.c ---*/ -/*-------------------------------------------------------------*/ - -/*-- - This file is a part of bzip2 and/or libbzip2, a program and - library for lossless, block-sorting data compression. - - Copyright (C) 1996-2000 Julian R Seward. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - - 3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - - 4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS - OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - Julian Seward, Cambridge, UK. - jseward@acm.org - bzip2/libbzip2 version 1.0 of 21 March 2000 - - This program is based on (at least) the work of: - Mike Burrows - David Wheeler - Peter Fenwick - Alistair Moffat - Radford Neal - Ian H. Witten - Robert Sedgewick - Jon L. Bentley - - For more information on these sources, see the manual. ---*/ - - -#include "bzlib_private.h" - -// smaller data mode that saves 384 bytes of data, but adds 66 bytes of code. -#ifdef EXEHEAD - -#define PACK4(a,b,c,d) (UChar)((a)<<0), (UChar)(((a)>>8)|((b)<<2)), (UChar)(((b)>>6)|((c)<<4)), (UChar)(((c)>>4)|((d)<<6)), (UChar)((d)>>2) - -// Four 10-bit values per five bytes -// aaaaaaaa bbbbbbaa ccccbbbb ddcccccc dddddddd -// 0 09 09 09 9 - -static UChar BZ2_rNumsPacked[640]= -{ - PACK4(619,720,127,481), - PACK4(931,816,813,233), - PACK4(566,247,985,724), - PACK4(205,454,863,491), - PACK4(741,242,949,214), - PACK4(733,859,335,708), - PACK4(621,574, 73,654), - PACK4(730,472,419,436), - PACK4(278,496,867,210), - PACK4(399,680,480, 51), - PACK4(878,465,811,169), - PACK4(869,675,611,697), - PACK4(867,561,862,687), - PACK4(507,283,482,129), - PACK4(807,591,733,623), - PACK4(150,238, 59,379), - PACK4(684,877,625,169), - PACK4(643,105,170,607), - PACK4(520,932,727,476), - PACK4(693,425,174,647), - PACK4( 73,122,335,530), - PACK4(442,853,695,249), - PACK4(445,515,909,545), - PACK4(703,919,874,474), - PACK4(882,500,594,612), - PACK4(641,801,220,162), - PACK4(819,984,589,513), - PACK4(495,799,161,604), - PACK4(958,533,221,400), - PACK4(386,867,600,782), - PACK4(382,596,414,171), - PACK4(516,375,682,485), - PACK4(911,276, 98,553), - PACK4(163,354,666,933), - PACK4(424,341,533,870), - PACK4(227,730,475,186), - PACK4(263,647,537,686), - PACK4(600,224,469, 68), - PACK4(770,919,190,373), - PACK4(294,822,808,206), - PACK4(184,943,795,384), - PACK4(383,461,404,758), - PACK4(839,887,715, 67), - PACK4(618,276,204,918), - PACK4(873,777,604,560), - PACK4(951,160,578,722), - PACK4( 79,804, 96,409), - PACK4(713,940,652,934), - PACK4(970,447,318,353), - PACK4(859,672,112,785), - PACK4(645,863,803,350), - PACK4(139, 93,354, 99), - PACK4(820,908,609,772), - PACK4(154,274,580,184), - PACK4( 79,626,630,742), - PACK4(653,282,762,623), - PACK4(680, 81,927,626), - PACK4(789,125,411,521), - PACK4(938,300,821, 78), - PACK4(343,175,128,250), - PACK4(170,774,972,275), - PACK4(999,639,495, 78), - PACK4(352,126,857,956), - PACK4(358,619,580,124), - PACK4(737,594,701,612), - PACK4(669,112,134,694), - PACK4(363,992,809,743), - PACK4(168,974,944,375), - PACK4(748, 52,600,747), - PACK4(642,182,862, 81), - PACK4(344,805,988,739), - PACK4(511,655,814,334), - PACK4(249,515,897,955), - PACK4(664,981,649,113), - PACK4(974,459,893,228), - PACK4(433,837,553,268), - PACK4(926,240,102,654), - PACK4(459, 51,686,754), - PACK4(806,760,493,403), - PACK4(415,394,687,700), - PACK4(946,670,656,610), - PACK4(738,392,760,799), - PACK4(887,653,978,321), - PACK4(576,617,626,502), - PACK4(894,679,243,440), - PACK4(680,879,194,572), - PACK4(640,724,926, 56), - PACK4(204,700,707,151), - PACK4(457,449,797,195), - PACK4(791,558,945,679), - PACK4(297, 59, 87,824), - PACK4(713,663,412,693), - PACK4(342,606,134,108), - PACK4(571,364,631,212), - PACK4(174,643,304,329), - PACK4(343, 97,430,751), - PACK4(497,314,983,374), - PACK4(822,928,140,206), - PACK4( 73,263,980,736), - PACK4(876,478,430,305), - PACK4(170,514,364,692), - PACK4(829, 82,855,953), - PACK4(676,246,369,970), - PACK4(294,750,807,827), - PACK4(150,790,288,923), - PACK4(804,378,215,828), - PACK4(592,281,565,555), - PACK4(710, 82,896,831), - PACK4(547,261,524,462), - PACK4(293,465,502, 56), - PACK4(661,821,976,991), - PACK4(658,869,905,758), - PACK4(745,193,768,550), - PACK4(608,933,378,286), - PACK4(215,979,792,961), - PACK4( 61,688,793,644), - PACK4(986,403,106,366), - PACK4(905,644,372,567), - PACK4(466,434,645,210), - PACK4(389,550,919,135), - PACK4(780,773,635,389), - PACK4(707,100,626,958), - PACK4(165,504,920,176), - PACK4(193,713,857,265), - PACK4(203, 50,668,108), - PACK4(645,990,626,197), - PACK4(510,357,358,850), - PACK4(858,364,936,638) -}; - -/*---------------------------------------------*/ -Int16 BZ2_rNums[512]; - -#ifdef __BIG_ENDIAN__ // Not very likely, but, still... -#error This routine is currently little-endian specific! -#endif - -void NSISCALL genrtable() -{ - unsigned char x=640/5; - Int16 *t=BZ2_rNums; - UChar *it=BZ2_rNumsPacked; - do { - unsigned char l=0; - do { - *t++ = (Int16)(((*(UInt16 *)(it++))>>l) & 1023); - } while ((l+=2) < 8); - it++; - } while (--x); -/* - x=512/4; - t=BZ2_rNums; - do { - char z[20]; - wsprintf(z, "%d,%d,%d,%d\n", t[0], t[1], t[2], t[3]); - t += 4; - OutputDebugString(z); - } while (--x); -*/ -} - -#else - -Int16 BZ2_rNums[512] = { - 619, 720, 127, 481, 931, 816, 813, 233, 566, 247, - 985, 724, 205, 454, 863, 491, 741, 242, 949, 214, - 733, 859, 335, 708, 621, 574, 73 , 654, 730, 472, - 419, 436, 278, 496, 867, 210, 399, 680, 480, 51, - 878, 465, 811, 169, 869, 675, 611, 697, 867, 561, - 862, 687, 507, 283, 482, 129, 807, 591, 733, 623, - 150, 238, 59 , 379, 684, 877, 625, 169, 643, 105, - 170, 607, 520, 932, 727, 476, 693, 425, 174, 647, - 73 , 122, 335, 530, 442, 853, 695, 249, 445, 515, - 909, 545, 703, 919, 874, 474, 882, 500, 594, 612, - 641, 801, 220, 162, 819, 984, 589, 513, 495, 799, - 161, 604, 958, 533, 221, 400, 386, 867, 600, 782, - 382, 596, 414, 171, 516, 375, 682, 485, 911, 276, - 98 , 553, 163, 354, 666, 933, 424, 341, 533, 870, - 227, 730, 475, 186, 263, 647, 537, 686, 600, 224, - 469, 68 , 770, 919, 190, 373, 294, 822, 808, 206, - 184, 943, 795, 384, 383, 461, 404, 758, 839, 887, - 715, 67 , 618, 276, 204, 918, 873, 777, 604, 560, - 951, 160, 578, 722, 79 , 804, 96 , 409, 713, 940, - 652, 934, 970, 447, 318, 353, 859, 672, 112, 785, - 645, 863, 803, 350, 139, 93 , 354, 99 , 820, 908, - 609, 772, 154, 274, 580, 184, 79 , 626, 630, 742, - 653, 282, 762, 623, 680, 81 , 927, 626, 789, 125, - 411, 521, 938, 300, 821, 78 , 343, 175, 128, 250, - 170, 774, 972, 275, 999, 639, 495, 78 , 352, 126, - 857, 956, 358, 619, 580, 124, 737, 594, 701, 612, - 669, 112, 134, 694, 363, 992, 809, 743, 168, 974, - 944, 375, 748, 52 , 600, 747, 642, 182, 862, 81, - 344, 805, 988, 739, 511, 655, 814, 334, 249, 515, - 897, 955, 664, 981, 649, 113, 974, 459, 893, 228, - 433, 837, 553, 268, 926, 240, 102, 654, 459, 51, - 686, 754, 806, 760, 493, 403, 415, 394, 687, 700, - 946, 670, 656, 610, 738, 392, 760, 799, 887, 653, - 978, 321, 576, 617, 626, 502, 894, 679, 243, 440, - 680, 879, 194, 572, 640, 724, 926, 56 , 204, 700, - 707, 151, 457, 449, 797, 195, 791, 558, 945, 679, - 297, 59 , 87 , 824, 713, 663, 412, 693, 342, 606, - 134, 108, 571, 364, 631, 212, 174, 643, 304, 329, - 343, 97 , 430, 751, 497, 314, 983, 374, 822, 928, - 140, 206, 73 , 263, 980, 736, 876, 478, 430, 305, - 170, 514, 364, 692, 829, 82 , 855, 953, 676, 246, - 369, 970, 294, 750, 807, 827, 150, 790, 288, 923, - 804, 378, 215, 828, 592, 281, 565, 555, 710, 82, - 896, 831, 547, 261, 524, 462, 293, 465, 502, 56, - 661, 821, 976, 991, 658, 869, 905, 758, 745, 193, - 768, 550, 608, 933, 378, 286, 215, 979, 792, 961, - 61 , 688, 793, 644, 986, 403, 106, 366, 905, 644, - 372, 567, 466, 434, 645, 210, 389, 550, 919, 135, - 780, 773, 635, 389, 707, 100, 626, 958, 165, 504, - 920, 176, 193, 713, 857, 265, 203, 50 , 668, 108, - 645, 990, 626, 197, 510, 357, 358, 850, 858, 364, - 936, 638 -}; -#endif - -/*-------------------------------------------------------------*/ -/*--- end randtable.c ---*/ -/*-------------------------------------------------------------*/ -#endif diff --git a/Source/exehead/config.h b/Source/exehead/config.h index 4a0d1135..ea30113c 100644 --- a/Source/exehead/config.h +++ b/Source/exehead/config.h @@ -69,16 +69,14 @@ // NSIS_ZLIB_COMPRESS_WHOLE makes all install data in zlib installers // compressed together. Runtime requirements are increased, but potential - // for compression is as well. Adds approximately 1kb of disk footprint, - // and requires that the installer create a (potentially large) temporary - // file in the temp directory. + // for compression is as well. Requires that the installer create a + // (potentially large) temporary file in the temp directory. // #define NSIS_ZLIB_COMPRESS_WHOLE // NSIS_BZIP2_COMPRESS_WHOLE makes all install data in bzip2 installers // compressed together. Runtime requirements are increased, but potential - // for compression is as well. Adds approximately 1kb of disk footprint, - // and requires that the installer create a (potentially large) temporary - // file in the temp directory. + // for compression is as well. Requires that the installer create a + // (potentially large) temporary file in the temp directory. #define NSIS_BZIP2_COMPRESS_WHOLE // if NSIS_COMPRESS_BZIP2_SMALLMODE is defined, bzip2's decompressor uses diff --git a/Source/exehead/exehead-bzip2.dsp b/Source/exehead/exehead-bzip2.dsp index c2168dc8..956ddb54 100644 --- a/Source/exehead/exehead-bzip2.dsp +++ b/Source/exehead/exehead-bzip2.dsp @@ -88,11 +88,6 @@ SOURCE=..\bzip2\decompress.c SOURCE=..\bzip2\huffman.c # ADD CPP /Gz # End Source File -# Begin Source File - -SOURCE=..\bzip2\randtable.c -# ADD CPP /Gz -# End Source File # End Group # Begin Source File diff --git a/Source/exehead/fileform.c b/Source/exehead/fileform.c index dbda9cfb..4295164f 100644 --- a/Source/exehead/fileform.c +++ b/Source/exehead/fileform.c @@ -7,18 +7,16 @@ #ifdef NSIS_CONFIG_COMPRESSION_SUPPORT #ifdef NSIS_COMPRESS_USE_ZLIB #include "../zlib/zlib.h" -#define genrtable() #endif #ifdef NSIS_COMPRESS_USE_BZIP2 #include "../bzip2/bzlib.h" static char bz2_needreinit; -void NSISCALL genrtable(); #define z_stream bz_stream #define inflateInit(x) { if (BZ2_bzDecompressInit(x)<0) return _LANG_INVALIDCRC; } #define inflate(x) BZ2_bzDecompress(x) -#define inflateReset(x) { if (bz2_needreinit) { BZ2_bzDecompressEnd(x); inflateInit(x); } else bz2_needreinit++; } +#define inflateReset(x) { if (bz2_needreinit) { inflateInit(x); } else bz2_needreinit++; } #define Z_OK BZ_OK #define Z_STREAM_END BZ_STREAM_END #endif//NSIS_COMPRESS_USE_BZIP2 @@ -62,7 +60,6 @@ const char * NSISCALL loadHeaders(void) data=(void*)my_GlobalAlloc(h.length_of_header); #ifdef NSIS_CONFIG_COMPRESSION_SUPPORT - genrtable(); inflateInit(&g_inflate_stream); #ifdef NSIS_COMPRESS_WHOLE