mirror of
https://github.com/lz4/lz4.git
synced 2024-11-24 10:24:00 +08:00
Rename _extState_noReset -> _extState_fastReset and Edit Comments
This commit is contained in:
parent
c18bff933b
commit
21f0c9700b
23
lib/lz4.c
23
lib/lz4.c
@ -582,10 +582,6 @@ LZ4_FORCE_INLINE void LZ4_prepareTable(
|
||||
cctx->dictSize = 0;
|
||||
}
|
||||
|
||||
void LZ4_resetStream_fast(LZ4_stream_t* const ctx) {
|
||||
LZ4_prepareTable(&(ctx->internal_donotuse), 0, byU32);
|
||||
}
|
||||
|
||||
/** LZ4_compress_generic() :
|
||||
inlined, to ensure branches are decided at compilation time */
|
||||
LZ4_FORCE_INLINE int LZ4_compress_generic(
|
||||
@ -851,14 +847,15 @@ int LZ4_compress_fast_extState(void* state, const char* source, char* dest, int
|
||||
}
|
||||
|
||||
/**
|
||||
* LZ4_compress_fast_extState_noReset is a variant of LZ4_compress_fast_extState
|
||||
* that can be used when the state is known to have already been initialized
|
||||
* (via LZ4_resetStream or an earlier call to LZ4_compress_fast_extState /
|
||||
* LZ4_compress_fast_extState_noReset). This can provide significantly better
|
||||
* performance when the context reset would otherwise be a significant part of
|
||||
* the cost of the compression, e.g., when the data to be compressed is small.
|
||||
* LZ4_compress_fast_extState_fastReset() :
|
||||
* A variant of LZ4_compress_fast_extState().
|
||||
*
|
||||
* Using this variant avoids an expensive initialization step. It is only safe
|
||||
* to call if the state buffer is known to be correctly initialized already
|
||||
* (see comment in lz4.h on LZ4_resetStream_fast() for a definition of
|
||||
* "correctly initialized").
|
||||
*/
|
||||
int LZ4_compress_fast_extState_noReset(void* state, const char* source, char* dest, int inputSize, int maxOutputSize, int acceleration)
|
||||
int LZ4_compress_fast_extState_fastReset(void* state, const char* source, char* dest, int inputSize, int maxOutputSize, int acceleration)
|
||||
{
|
||||
LZ4_stream_t_internal* ctx = &((LZ4_stream_t*)state)->internal_donotuse;
|
||||
if (acceleration < 1) acceleration = ACCELERATION_DEFAULT;
|
||||
@ -1149,6 +1146,10 @@ void LZ4_resetStream (LZ4_stream_t* LZ4_stream)
|
||||
MEM_INIT(LZ4_stream, 0, sizeof(LZ4_stream_t));
|
||||
}
|
||||
|
||||
void LZ4_resetStream_fast(LZ4_stream_t* const ctx) {
|
||||
LZ4_prepareTable(&(ctx->internal_donotuse), 0, byU32);
|
||||
}
|
||||
|
||||
int LZ4_freeStream (LZ4_stream_t* LZ4_stream)
|
||||
{
|
||||
if (!LZ4_stream) return 0; /* support free on NULL */
|
||||
|
43
lib/lz4.h
43
lib/lz4.h
@ -353,26 +353,39 @@ LZ4LIB_API int LZ4_decompress_fast_usingDict (const char* src, char* dst, int or
|
||||
* Their signatures may change.
|
||||
**************************************/
|
||||
|
||||
/*!
|
||||
LZ4_compress_fast_extState_noReset() :
|
||||
A variant of LZ4_compress_fast_extState().
|
||||
|
||||
Use the _noReset variant if LZ4_resetStream() was called on the state
|
||||
buffer before being used for the first time (calls to both extState
|
||||
functions leave the state in a safe state, so zeroing is not required
|
||||
between calls). Otherwise, using the plain _extState requires LZ4 to
|
||||
reinitialize the state internally for every call.
|
||||
*/
|
||||
LZ4LIB_API int LZ4_compress_fast_extState_noReset (void* state, const char* src, char* dst, int srcSize, int dstCapacity, int acceleration);
|
||||
|
||||
|
||||
|
||||
/*! LZ4_resetStream_fast() :
|
||||
* An LZ4_stream_t structure can be allocated once and re-used multiple times.
|
||||
* Use this function to start compressing a new stream.
|
||||
* When an LZ4_stream_t is known to be in a internally coherent state,
|
||||
* it can often be prepared for a new compression with almost no work, only
|
||||
* sometimes falling back to the full, expensive reset that is always required
|
||||
* when the stream is in an indeterminate state (i.e., the reset performed by
|
||||
* LZ4_resetStream()).
|
||||
*
|
||||
* LZ4_streams are guaranteed to be in a valid state when:
|
||||
* - returned from LZ4_createStream()
|
||||
* - reset by LZ4_resetStream()
|
||||
* - memset(stream, 0, sizeof(LZ4_stream_t))
|
||||
* - the stream was in a valid state and was reset by LZ4_resetStream_fast()
|
||||
* - the stream was in a valid state and was then used in any compression call
|
||||
* that returned success
|
||||
* - the stream was in an indeterminate state and was used in a compression
|
||||
* call that fully reset the state (LZ4_compress_fast_extState()) and that
|
||||
* returned success
|
||||
*/
|
||||
LZ4LIB_API void LZ4_resetStream_fast (LZ4_stream_t* streamPtr);
|
||||
|
||||
/*! LZ4_compress_fast_extState_fastReset() :
|
||||
* A variant of LZ4_compress_fast_extState().
|
||||
*
|
||||
* Using this variant avoids an expensive initialization step. It is only safe
|
||||
* to call if the state buffer is known to be correctly initialized already
|
||||
* (see above comment on LZ4_resetStream_fast() for a definition of "correctly
|
||||
* initialized"). From a high level, the difference is that this function
|
||||
* initializes the provided state with a call to LZ4_resetStream_fast() while
|
||||
* LZ4_compress_fast_extState() starts with a call to LZ4_resetStream().
|
||||
*/
|
||||
LZ4LIB_API int LZ4_compress_fast_extState_fastReset (void* state, const char* src, char* dst, int srcSize, int dstCapacity, int acceleration);
|
||||
|
||||
|
||||
/*-************************************
|
||||
* Private definitions
|
||||
|
@ -714,7 +714,7 @@ static int LZ4F_compressBlock(void* ctx, const char* src, char* dst, int srcSize
|
||||
if (cdict) {
|
||||
return LZ4_compress_fast_continue((LZ4_stream_t*)ctx, src, dst, srcSize, dstCapacity, acceleration);
|
||||
} else {
|
||||
return LZ4_compress_fast_extState_noReset(ctx, src, dst, srcSize, dstCapacity, acceleration);
|
||||
return LZ4_compress_fast_extState_fastReset(ctx, src, dst, srcSize, dstCapacity, acceleration);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user