Enable amalgamation of lz4hc.c and lz4.c
This commit is contained in:
parent
1b819bfd63
commit
17f5071e72
15
lib/lz4.c
15
lib/lz4.c
@ -32,6 +32,13 @@
|
|||||||
- LZ4 source repository : https://github.com/lz4/lz4
|
- LZ4 source repository : https://github.com/lz4/lz4
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* LZ4_SRC_INCLUDED:
|
||||||
|
* Amalgamation flag, whether lz4.c is included
|
||||||
|
*/
|
||||||
|
#ifndef LZ4_SRC_INCLUDED
|
||||||
|
# define LZ4_SRC_INCLUDED 1
|
||||||
|
#endif
|
||||||
|
|
||||||
/*-************************************
|
/*-************************************
|
||||||
* Tuning parameters
|
* Tuning parameters
|
||||||
@ -455,7 +462,13 @@ static const U32 LZ4_skipTrigger = 6; /* Increase this value ==> compression ru
|
|||||||
/*-************************************
|
/*-************************************
|
||||||
* Local Structures and types
|
* Local Structures and types
|
||||||
**************************************/
|
**************************************/
|
||||||
typedef enum { notLimited = 0, limitedOutput = 1, fillOutput = 2 } limitedOutput_directive;
|
typedef enum {
|
||||||
|
noLimit = 0,
|
||||||
|
notLimited = 1,
|
||||||
|
limitedOutput = 2,
|
||||||
|
fillOutput = 3,
|
||||||
|
limitedDestSize = 4
|
||||||
|
} limitedOutput_directive;
|
||||||
typedef enum { clearedTable = 0, byPtr, byU32, byU16 } tableType_t;
|
typedef enum { clearedTable = 0, byPtr, byU32, byU16 } tableType_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
31
lib/lz4hc.c
31
lib/lz4hc.c
@ -61,10 +61,22 @@
|
|||||||
# pragma clang diagnostic ignored "-Wunused-function"
|
# pragma clang diagnostic ignored "-Wunused-function"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define LZ4_COMMONDEFS_ONLY
|
/*=== Enums ===*/
|
||||||
#include "lz4.c" /* LZ4_count, constants, mem */
|
typedef enum { noDictCtx, usingDictCtxHc } dictCtx_directive;
|
||||||
|
#ifndef LZ4_SRC_INCLUDED
|
||||||
|
typedef enum {
|
||||||
|
noLimit = 0,
|
||||||
|
limitedOutput = 1,
|
||||||
|
limitedDestSize = 2
|
||||||
|
} limitedOutput_directive;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define LZ4_COMMONDEFS_ONLY
|
||||||
|
#ifndef LZ4_SRC_INCLUDED
|
||||||
|
#include "lz4.c" /* LZ4_count, constants, mem */
|
||||||
|
#endif
|
||||||
|
|
||||||
/*=== Constants ===*/
|
/*=== Constants ===*/
|
||||||
#define OPTIMAL_ML (int)((ML_MASK-1)+MINMATCH)
|
#define OPTIMAL_ML (int)((ML_MASK-1)+MINMATCH)
|
||||||
#define LZ4_OPT_NUM (1<<12)
|
#define LZ4_OPT_NUM (1<<12)
|
||||||
@ -79,9 +91,6 @@
|
|||||||
|
|
||||||
static U32 LZ4HC_hashPtr(const void* ptr) { return HASH_FUNCTION(LZ4_read32(ptr)); }
|
static U32 LZ4HC_hashPtr(const void* ptr) { return HASH_FUNCTION(LZ4_read32(ptr)); }
|
||||||
|
|
||||||
/*=== Enums ===*/
|
|
||||||
typedef enum { noDictCtx, usingDictCtx } dictCtx_directive;
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************
|
/**************************************
|
||||||
* HC Compression
|
* HC Compression
|
||||||
@ -346,7 +355,7 @@ LZ4HC_InsertAndGetWiderMatch (
|
|||||||
|
|
||||||
} /* while ((matchIndex>=lowestMatchIndex) && (nbAttempts)) */
|
} /* while ((matchIndex>=lowestMatchIndex) && (nbAttempts)) */
|
||||||
|
|
||||||
if (dict == usingDictCtx && nbAttempts && ipIndex - lowestMatchIndex < MAX_DISTANCE) {
|
if (dict == usingDictCtxHc && nbAttempts && ipIndex - lowestMatchIndex < MAX_DISTANCE) {
|
||||||
size_t const dictEndOffset = dictCtx->end - dictCtx->base;
|
size_t const dictEndOffset = dictCtx->end - dictCtx->base;
|
||||||
U32 dictMatchIndex = dictCtx->hashTable[LZ4HC_hashPtr(ip)];
|
U32 dictMatchIndex = dictCtx->hashTable[LZ4HC_hashPtr(ip)];
|
||||||
assert(dictEndOffset <= 1 GB);
|
assert(dictEndOffset <= 1 GB);
|
||||||
@ -394,14 +403,6 @@ int LZ4HC_InsertAndFindBestMatch(LZ4HC_CCtx_internal* const hc4, /* Index tabl
|
|||||||
return LZ4HC_InsertAndGetWiderMatch(hc4, ip, ip, iLimit, MINMATCH-1, matchpos, &uselessPtr, maxNbAttempts, patternAnalysis, 0 /*chainSwap*/, dict, favorCompressionRatio);
|
return LZ4HC_InsertAndGetWiderMatch(hc4, ip, ip, iLimit, MINMATCH-1, matchpos, &uselessPtr, maxNbAttempts, patternAnalysis, 0 /*chainSwap*/, dict, favorCompressionRatio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
noLimit = 0,
|
|
||||||
limitedOutput = 1,
|
|
||||||
limitedDestSize = 2
|
|
||||||
} limitedOutput_directive;
|
|
||||||
|
|
||||||
/* LZ4HC_encodeSequence() :
|
/* LZ4HC_encodeSequence() :
|
||||||
* @return : 0 if ok,
|
* @return : 0 if ok,
|
||||||
* 1 if buffer issue detected */
|
* 1 if buffer issue detected */
|
||||||
@ -800,7 +801,7 @@ static int LZ4HC_compress_generic_dictCtx (
|
|||||||
ctx->compressionLevel = (short)cLevel;
|
ctx->compressionLevel = (short)cLevel;
|
||||||
return LZ4HC_compress_generic_noDictCtx(ctx, src, dst, srcSizePtr, dstCapacity, cLevel, limit);
|
return LZ4HC_compress_generic_noDictCtx(ctx, src, dst, srcSizePtr, dstCapacity, cLevel, limit);
|
||||||
} else {
|
} else {
|
||||||
return LZ4HC_compress_generic_internal(ctx, src, dst, srcSizePtr, dstCapacity, cLevel, limit, usingDictCtx);
|
return LZ4HC_compress_generic_internal(ctx, src, dst, srcSizePtr, dstCapacity, cLevel, limit, usingDictCtxHc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user