diff options
author | Bing Xu <bingxu@fb.com> | 2018-11-16 06:24:25 (GMT) |
---|---|---|
committer | Bing Xu <bingxu@fb.com> | 2018-11-16 06:24:25 (GMT) |
commit | 17f5071e72095d93e146264577ed7621763c2b70 (patch) | |
tree | 11625d8249c07caa6783a5f80a123f1ada9a9660 /lib | |
parent | 1b819bfd633ae285df2dfe1b0589e1ec064f2873 (diff) | |
download | lz4-17f5071e72095d93e146264577ed7621763c2b70.zip lz4-17f5071e72095d93e146264577ed7621763c2b70.tar.gz lz4-17f5071e72095d93e146264577ed7621763c2b70.tar.bz2 |
Enable amalgamation of lz4hc.c and lz4.c
Diffstat (limited to 'lib')
-rw-r--r-- | lib/lz4.c | 15 | ||||
-rw-r--r-- | lib/lz4hc.c | 29 |
2 files changed, 29 insertions, 15 deletions
@@ -32,6 +32,13 @@ - 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 @@ -455,7 +462,13 @@ static const U32 LZ4_skipTrigger = 6; /* Increase this value ==> compression ru /*-************************************ * 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; /** diff --git a/lib/lz4hc.c b/lib/lz4hc.c index d4180e3..56c8f47 100644 --- a/lib/lz4hc.c +++ b/lib/lz4hc.c @@ -61,9 +61,21 @@ # pragma clang diagnostic ignored "-Wunused-function" #endif +/*=== Enums ===*/ +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 ===*/ #define OPTIMAL_ML (int)((ML_MASK-1)+MINMATCH) @@ -79,9 +91,6 @@ static U32 LZ4HC_hashPtr(const void* ptr) { return HASH_FUNCTION(LZ4_read32(ptr)); } -/*=== Enums ===*/ -typedef enum { noDictCtx, usingDictCtx } dictCtx_directive; - /************************************** * HC Compression @@ -346,7 +355,7 @@ LZ4HC_InsertAndGetWiderMatch ( } /* 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; U32 dictMatchIndex = dictCtx->hashTable[LZ4HC_hashPtr(ip)]; 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); } - - -typedef enum { - noLimit = 0, - limitedOutput = 1, - limitedDestSize = 2 -} limitedOutput_directive; - /* LZ4HC_encodeSequence() : * @return : 0 if ok, * 1 if buffer issue detected */ @@ -800,7 +801,7 @@ static int LZ4HC_compress_generic_dictCtx ( ctx->compressionLevel = (short)cLevel; return LZ4HC_compress_generic_noDictCtx(ctx, src, dst, srcSizePtr, dstCapacity, cLevel, limit); } 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); } } |