added dict_size parameter to Compressor::Init() so a cast to CLZMA won't be required to pass a dictionary size
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3708 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
93f4ad3d6b
commit
a33cecb337
6 changed files with 9 additions and 32 deletions
|
@ -801,11 +801,7 @@ int CEXEBuild::add_db_data(IMMap *map) // returns offset
|
||||||
int bufferlen = length + 1024 + length / 4; // give a nice 25% extra space
|
int bufferlen = length + 1024 + length / 4; // give a nice 25% extra space
|
||||||
db->resize(st + bufferlen + sizeof(int));
|
db->resize(st + bufferlen + sizeof(int));
|
||||||
|
|
||||||
int n;
|
int n = compressor->Init(build_compress_level, build_compress_dict_size);
|
||||||
if (compressor == &lzma_compressor)
|
|
||||||
n = ((CLZMA *) compressor)->Init(build_compress_level, build_compress_dict_size);
|
|
||||||
else
|
|
||||||
n = compressor->Init(build_compress_level);
|
|
||||||
if (n != C_OK)
|
if (n != C_OK)
|
||||||
{
|
{
|
||||||
ERROR_MSG("Internal compiler error #12345: deflateInit() failed(%d - %s).\n", n, compressor->GetErrStr(n));
|
ERROR_MSG("Internal compiler error #12345: deflateInit() failed(%d - %s).\n", n, compressor->GetErrStr(n));
|
||||||
|
@ -944,11 +940,7 @@ int CEXEBuild::add_data(const char *data, int length, IGrowBuf *dblock) // retur
|
||||||
int bufferlen=length+1024+length/4; // give a nice 25% extra space
|
int bufferlen=length+1024+length/4; // give a nice 25% extra space
|
||||||
dblock->resize(st+bufferlen+sizeof(int));
|
dblock->resize(st+bufferlen+sizeof(int));
|
||||||
|
|
||||||
int n;
|
int n = compressor->Init(build_compress_level, build_compress_dict_size);
|
||||||
if (compressor == &lzma_compressor)
|
|
||||||
n = ((CLZMA *) compressor)->Init(build_compress_level, build_compress_dict_size);
|
|
||||||
else
|
|
||||||
n = compressor->Init(build_compress_level);
|
|
||||||
if (n != C_OK)
|
if (n != C_OK)
|
||||||
{
|
{
|
||||||
ERROR_MSG("Internal compiler error #12345: deflateInit() failed(%d - %s).\n", n, compressor->GetErrStr(n));
|
ERROR_MSG("Internal compiler error #12345: deflateInit() failed(%d - %s).\n", n, compressor->GetErrStr(n));
|
||||||
|
@ -2458,11 +2450,7 @@ int CEXEBuild::write_output(void)
|
||||||
#ifdef NSIS_CONFIG_COMPRESSION_SUPPORT
|
#ifdef NSIS_CONFIG_COMPRESSION_SUPPORT
|
||||||
if (build_compress_whole)
|
if (build_compress_whole)
|
||||||
{
|
{
|
||||||
int n;
|
int n = compressor->Init(build_compress_level, build_compress_dict_size);
|
||||||
if (compressor == &lzma_compressor)
|
|
||||||
n = ((CLZMA *) compressor)->Init(build_compress_level, build_compress_dict_size);
|
|
||||||
else
|
|
||||||
n = compressor->Init(build_compress_level);
|
|
||||||
if (n != C_OK)
|
if (n != C_OK)
|
||||||
{
|
{
|
||||||
ERROR_MSG("Internal compiler error #12345: deflateInit() failed(%d - %s).\n", n, compressor->GetErrStr(n));
|
ERROR_MSG("Internal compiler error #12345: deflateInit() failed(%d - %s).\n", n, compressor->GetErrStr(n));
|
||||||
|
@ -2891,11 +2879,7 @@ int CEXEBuild::uninstall_generate()
|
||||||
// compress uninstaller too
|
// compress uninstaller too
|
||||||
{
|
{
|
||||||
char obuf[65536];
|
char obuf[65536];
|
||||||
int n;
|
int n = compressor->Init(build_compress_level, build_compress_dict_size);
|
||||||
if (compressor == &lzma_compressor)
|
|
||||||
n = ((CLZMA *) compressor)->Init(build_compress_level, build_compress_dict_size);
|
|
||||||
else
|
|
||||||
n = compressor->Init(build_compress_level);
|
|
||||||
if (n != C_OK)
|
if (n != C_OK)
|
||||||
{
|
{
|
||||||
ERROR_MSG("Internal compiler error #12345: deflateInit() failed(%d - %s).\n", n, compressor->GetErrStr(n));
|
ERROR_MSG("Internal compiler error #12345: deflateInit() failed(%d - %s).\n", n, compressor->GetErrStr(n));
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
class CBzip2 : public ICompressor {
|
class CBzip2 : public ICompressor {
|
||||||
public:
|
public:
|
||||||
int Init(int level) {
|
int Init(int level, unsigned int dict_size) {
|
||||||
last_ret = !BZ_STREAM_END;
|
last_ret = !BZ_STREAM_END;
|
||||||
stream = new bz_stream;
|
stream = new bz_stream;
|
||||||
if (!stream) return BZ_MEM_ERROR;
|
if (!stream) return BZ_MEM_ERROR;
|
||||||
|
|
|
@ -145,7 +145,7 @@ CLZMA::~CLZMA()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int CLZMA::Init(int level, UINT32 dicSize)
|
int CLZMA::Init(int level, unsigned int dicSize)
|
||||||
{
|
{
|
||||||
End();
|
End();
|
||||||
|
|
||||||
|
@ -185,12 +185,6 @@ int CLZMA::Init(int level, UINT32 dicSize)
|
||||||
return _encoder->SetStreams(this, this, 0, 0) == S_OK ? C_OK : LZMA_INIT_ERROR;
|
return _encoder->SetStreams(this, this, 0, 0) == S_OK ? C_OK : LZMA_INIT_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CLZMA::Init(int level)
|
|
||||||
{
|
|
||||||
// default dictionary size is 8MB
|
|
||||||
return Init(level, 8 << 20);
|
|
||||||
}
|
|
||||||
|
|
||||||
int CLZMA::End()
|
int CLZMA::End()
|
||||||
{
|
{
|
||||||
// has compressor not finished?
|
// has compressor not finished?
|
||||||
|
|
|
@ -64,8 +64,7 @@ public:
|
||||||
CLZMA();
|
CLZMA();
|
||||||
virtual ~CLZMA();
|
virtual ~CLZMA();
|
||||||
|
|
||||||
virtual int Init(int level);
|
virtual int Init(int level, unsigned int dicSize);
|
||||||
virtual int Init(int level, UINT32 dicSize);
|
|
||||||
virtual int End();
|
virtual int End();
|
||||||
virtual int Compress(bool flush);
|
virtual int Compress(bool flush);
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
class ICompressor {
|
class ICompressor {
|
||||||
public:
|
public:
|
||||||
virtual int Init(int level) = 0;
|
virtual int Init(int level, unsigned int dict_size) = 0;
|
||||||
virtual int End() = 0;
|
virtual int End() = 0;
|
||||||
virtual int Compress(bool finish) = 0;
|
virtual int Compress(bool finish) = 0;
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
class CZlib : public ICompressor {
|
class CZlib : public ICompressor {
|
||||||
public:
|
public:
|
||||||
int Init(int level) {
|
int Init(int level, unsigned int dict_size) {
|
||||||
stream = new z_stream;
|
stream = new z_stream;
|
||||||
if (!stream) return Z_MEM_ERROR;
|
if (!stream) return Z_MEM_ERROR;
|
||||||
return deflateInit(stream, level);
|
return deflateInit(stream, level);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue