mirror of
https://github.com/facebook/zstd.git
synced 2025-10-09 00:05:28 -04:00
Implemented ZSTD_HEAPMODE for zstd_decompress.c
Reduce cmake version requirement to 2.8.7
This commit is contained in:
parent
3e5b73b84b
commit
3a3b72f25a
@ -32,7 +32,7 @@
|
|||||||
# ################################################################
|
# ################################################################
|
||||||
|
|
||||||
PROJECT(zstd)
|
PROJECT(zstd)
|
||||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
|
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.7)
|
||||||
|
|
||||||
OPTION(ZSTD_LEGACY_SUPPORT "LEGACY SUPPORT" OFF)
|
OPTION(ZSTD_LEGACY_SUPPORT "LEGACY SUPPORT" OFF)
|
||||||
|
|
||||||
|
@ -35,13 +35,12 @@
|
|||||||
*****************************************************************/
|
*****************************************************************/
|
||||||
/*!
|
/*!
|
||||||
* HEAPMODE :
|
* HEAPMODE :
|
||||||
* Select how default compression functions will allocate memory for their hash table,
|
* Select how default decompression function ZSTD_decompress() will allocate memory,
|
||||||
* in memory stack (0, fastest), or in memory heap (1, requires malloc())
|
* in memory stack (0), or in memory heap (1, requires malloc())
|
||||||
* Note that compression context is fairly large, as a consequence heap memory is recommended.
|
|
||||||
*/
|
*/
|
||||||
#ifndef ZSTD_HEAPMODE
|
#ifndef ZSTD_HEAPMODE
|
||||||
# define ZSTD_HEAPMODE 1
|
# define ZSTD_HEAPMODE 1
|
||||||
#endif /* ZSTD_HEAPMODE */
|
#endif
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* LEGACY_SUPPORT :
|
* LEGACY_SUPPORT :
|
||||||
@ -790,8 +789,17 @@ size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, const
|
|||||||
|
|
||||||
size_t ZSTD_decompress(void* dst, size_t maxDstSize, const void* src, size_t srcSize)
|
size_t ZSTD_decompress(void* dst, size_t maxDstSize, const void* src, size_t srcSize)
|
||||||
{
|
{
|
||||||
|
#if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE==1)
|
||||||
|
size_t regenSize;
|
||||||
|
ZSTD_DCtx* dctx = ZSTD_createDCtx();
|
||||||
|
if (dctx==NULL) return ERROR(memory_allocation);
|
||||||
|
regenSize = ZSTD_decompressDCtx(dctx, dst, maxDstSize, src, srcSize);
|
||||||
|
ZSTD_freeDCtx(dctx);
|
||||||
|
return regenSize;
|
||||||
|
#else
|
||||||
ZSTD_DCtx dctx;
|
ZSTD_DCtx dctx;
|
||||||
return ZSTD_decompressDCtx(&dctx, dst, maxDstSize, src, srcSize);
|
return ZSTD_decompressDCtx(&dctx, dst, maxDstSize, src, srcSize);
|
||||||
|
#endif // defined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user