mirror of
https://github.com/facebook/zstd.git
synced 2025-07-30 22:23:13 +03:00
fixed : high compression modes for Windows 32 bits
This commit is contained in:
@ -19,6 +19,7 @@ env:
|
|||||||
- ZSTD_TRAVIS_CI_ENV="-C programs test-zstd_nolegacy"
|
- ZSTD_TRAVIS_CI_ENV="-C programs test-zstd_nolegacy"
|
||||||
- ZSTD_TRAVIS_CI_ENV=usan
|
- ZSTD_TRAVIS_CI_ENV=usan
|
||||||
- ZSTD_TRAVIS_CI_ENV=asan
|
- ZSTD_TRAVIS_CI_ENV=asan
|
||||||
|
- ZSTD_TRAVIS_CI_ENV=asan32
|
||||||
- ZSTD_TRAVIS_CI_ENV="-C programs valgrindTest"
|
- ZSTD_TRAVIS_CI_ENV="-C programs valgrindTest"
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
|
5
Makefile
5
Makefile
@ -32,7 +32,7 @@
|
|||||||
# ################################################################
|
# ################################################################
|
||||||
|
|
||||||
# Version number
|
# Version number
|
||||||
export VERSION := 0.4.3
|
export VERSION := 0.4.4
|
||||||
|
|
||||||
PRGDIR = programs
|
PRGDIR = programs
|
||||||
ZSTDDIR = lib
|
ZSTDDIR = lib
|
||||||
@ -96,6 +96,9 @@ usan: clean
|
|||||||
asan: clean
|
asan: clean
|
||||||
$(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=address"
|
$(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=address"
|
||||||
|
|
||||||
|
asan32: clean
|
||||||
|
$(MAKE) -C $(PRGDIR) test32 CC=clang MOREFLAGS="-g -fsanitize=address"
|
||||||
|
|
||||||
uasan: clean
|
uasan: clean
|
||||||
$(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=address -fsanitize=undefined"
|
$(MAKE) test CC=clang MOREFLAGS="-g -fsanitize=address -fsanitize=undefined"
|
||||||
|
|
||||||
|
1
NEWS
1
NEWS
@ -1,4 +1,5 @@
|
|||||||
v0.4.4
|
v0.4.4
|
||||||
|
Fixed : high compression modes for Windows 32 bits
|
||||||
new : windows DLL project, thanks to Christophe Chevalier
|
new : windows DLL project, thanks to Christophe Chevalier
|
||||||
|
|
||||||
v0.4.3 :
|
v0.4.3 :
|
||||||
|
@ -1026,7 +1026,7 @@ static U32 ZSTD_insertBt1(ZSTD_CCtx* zc, const BYTE* const ip, const U32 mls, co
|
|||||||
size_t commonLengthSmaller=0, commonLengthLarger=0;
|
size_t commonLengthSmaller=0, commonLengthLarger=0;
|
||||||
const BYTE* const base = zc->base;
|
const BYTE* const base = zc->base;
|
||||||
const BYTE* match = base + matchIndex;
|
const BYTE* match = base + matchIndex;
|
||||||
U32 current = (U32)(ip-base);
|
const U32 current = (U32)(ip-base);
|
||||||
const U32 btLow = btMask >= current ? 0 : current - btMask;
|
const U32 btLow = btMask >= current ? 0 : current - btMask;
|
||||||
U32* smallerPtr = bt + 2*(current&btMask);
|
U32* smallerPtr = bt + 2*(current&btMask);
|
||||||
U32* largerPtr = bt + 2*(current&btMask) + 1;
|
U32* largerPtr = bt + 2*(current&btMask) + 1;
|
||||||
@ -1040,7 +1040,7 @@ static U32 ZSTD_insertBt1(ZSTD_CCtx* zc, const BYTE* const ip, const U32 mls, co
|
|||||||
return (U32)(rleLength - mls);
|
return (U32)(rleLength - mls);
|
||||||
}
|
}
|
||||||
|
|
||||||
hashTable[h] = (U32)(ip - base); /* Update Hash Table */
|
hashTable[h] = current; /* Update Hash Table */
|
||||||
|
|
||||||
while (nbCompares-- && (matchIndex > windowLow))
|
while (nbCompares-- && (matchIndex > windowLow))
|
||||||
{
|
{
|
||||||
@ -1103,7 +1103,7 @@ size_t ZSTD_insertBtAndFindBestMatch (
|
|||||||
size_t bestLength = 0;
|
size_t bestLength = 0;
|
||||||
U32 dummy32; /* to be nullified at the end */
|
U32 dummy32; /* to be nullified at the end */
|
||||||
|
|
||||||
hashTable[h] = (U32)(ip-base); /* Update Hash Table */
|
hashTable[h] = current; /* Update Hash Table */
|
||||||
|
|
||||||
while (nbCompares-- && (matchIndex > windowLow))
|
while (nbCompares-- && (matchIndex > windowLow))
|
||||||
{
|
{
|
||||||
@ -1213,7 +1213,7 @@ static U32 ZSTD_insertBt1_extDict(ZSTD_CCtx* zc, const BYTE* const ip, const U32
|
|||||||
const BYTE* const dictEnd = dictBase + dictLimit;
|
const BYTE* const dictEnd = dictBase + dictLimit;
|
||||||
const BYTE* const prefixStart = base + dictLimit;
|
const BYTE* const prefixStart = base + dictLimit;
|
||||||
const BYTE* match = base + matchIndex;
|
const BYTE* match = base + matchIndex;
|
||||||
U32 current = (U32)(ip-base);
|
const U32 current = (U32)(ip-base);
|
||||||
const U32 btLow = btMask >= current ? 0 : current - btMask;
|
const U32 btLow = btMask >= current ? 0 : current - btMask;
|
||||||
U32* smallerPtr = bt + 2*(current&btMask);
|
U32* smallerPtr = bt + 2*(current&btMask);
|
||||||
U32* largerPtr = bt + 2*(current&btMask) + 1;
|
U32* largerPtr = bt + 2*(current&btMask) + 1;
|
||||||
@ -1227,7 +1227,7 @@ static U32 ZSTD_insertBt1_extDict(ZSTD_CCtx* zc, const BYTE* const ip, const U32
|
|||||||
return (U32)(rleLength - mls);
|
return (U32)(rleLength - mls);
|
||||||
}
|
}
|
||||||
|
|
||||||
hashTable[h] = (U32)(ip - base); /* Update Hash Table */
|
hashTable[h] = current; /* Update Hash Table */
|
||||||
|
|
||||||
while (nbCompares-- && (matchIndex > windowLow))
|
while (nbCompares-- && (matchIndex > windowLow))
|
||||||
{
|
{
|
||||||
@ -1318,7 +1318,7 @@ size_t ZSTD_insertBtAndFindBestMatch_extDict (
|
|||||||
size_t bestLength = 0;
|
size_t bestLength = 0;
|
||||||
U32 dummy32; /* to be nullified at the end */
|
U32 dummy32; /* to be nullified at the end */
|
||||||
|
|
||||||
hashTable[h] = (U32)(ip-base); /* Update Hash Table */
|
hashTable[h] = current; /* Update Hash Table */
|
||||||
|
|
||||||
while (nbCompares-- && (matchIndex > windowLow))
|
while (nbCompares-- && (matchIndex > windowLow))
|
||||||
{
|
{
|
||||||
@ -1726,7 +1726,7 @@ size_t ZSTD_compressBlock_lazy_extDict_generic(ZSTD_CCtx* ctx,
|
|||||||
|
|
||||||
/* init */
|
/* init */
|
||||||
ZSTD_resetSeqStore(seqStorePtr);
|
ZSTD_resetSeqStore(seqStorePtr);
|
||||||
if (((ip-base) - dictLimit) < REPCODE_STARTVALUE) ip += REPCODE_STARTVALUE;
|
if ((ip - prefixStart) < REPCODE_STARTVALUE) ip += REPCODE_STARTVALUE;
|
||||||
|
|
||||||
/* Match Loop */
|
/* Match Loop */
|
||||||
while (ip < ilimit)
|
while (ip < ilimit)
|
||||||
@ -2008,13 +2008,16 @@ size_t ZSTD_compressContinue (ZSTD_CCtx* zc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* preemptive overflow correction */
|
/* preemptive overflow correction */
|
||||||
if ((zc->base > ip) || (zc->lowLimit > (1<<30) ))
|
if (zc->lowLimit > (1<<30))
|
||||||
{
|
{
|
||||||
U32 correction = zc->lowLimit-1;
|
U32 btplus = (zc->params.strategy == ZSTD_btlazy2);
|
||||||
|
U32 contentMask = (1 << (zc->params.contentLog - btplus)) - 1;
|
||||||
|
U32 newLowLimit = zc->lowLimit & contentMask; /* preserve position % contentSize */
|
||||||
|
U32 correction = zc->lowLimit - newLowLimit;
|
||||||
ZSTD_reduceIndex(zc, correction);
|
ZSTD_reduceIndex(zc, correction);
|
||||||
zc->base += correction;
|
zc->base += correction;
|
||||||
zc->dictBase += correction;
|
zc->dictBase += correction;
|
||||||
zc->lowLimit -= correction;
|
zc->lowLimit = newLowLimit;
|
||||||
zc->dictLimit -= correction;
|
zc->dictLimit -= correction;
|
||||||
if (zc->nextToUpdate < correction) zc->nextToUpdate = 0;
|
if (zc->nextToUpdate < correction) zc->nextToUpdate = 0;
|
||||||
else zc->nextToUpdate -= correction;
|
else zc->nextToUpdate -= correction;
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
# fullbench32: Same as fullbench, but forced to compile in 32-bits mode
|
# fullbench32: Same as fullbench, but forced to compile in 32-bits mode
|
||||||
# ##########################################################################
|
# ##########################################################################
|
||||||
|
|
||||||
VERSION?= 0.4.3
|
VERSION?= 0.4.4
|
||||||
|
|
||||||
DESTDIR?=
|
DESTDIR?=
|
||||||
PREFIX ?= /usr/local
|
PREFIX ?= /usr/local
|
||||||
|
@ -70,7 +70,7 @@
|
|||||||
**************************************/
|
**************************************/
|
||||||
#define COMPRESSOR_NAME "zstd command line interface"
|
#define COMPRESSOR_NAME "zstd command line interface"
|
||||||
#ifndef ZSTD_VERSION
|
#ifndef ZSTD_VERSION
|
||||||
# define ZSTD_VERSION "v0.4.2"
|
# define ZSTD_VERSION "v0.4.4"
|
||||||
#endif
|
#endif
|
||||||
#define AUTHOR "Yann Collet"
|
#define AUTHOR "Yann Collet"
|
||||||
#define WELCOME_MESSAGE "*** %s %i-bits %s, by %s (%s) ***\n", COMPRESSOR_NAME, (int)(sizeof(void*)*8), ZSTD_VERSION, AUTHOR, __DATE__
|
#define WELCOME_MESSAGE "*** %s %i-bits %s, by %s (%s) ***\n", COMPRESSOR_NAME, (int)(sizeof(void*)*8), ZSTD_VERSION, AUTHOR, __DATE__
|
||||||
|
Reference in New Issue
Block a user