diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index 3671a662..00a31e85 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -3476,6 +3476,26 @@ ZSTD_CDict* ZSTD_createCDict_advanced(const void* dictBuffer, size_t dictSize, } } +ZSTDLIB_API ZSTD_CDict* ZSTD_createCDict_advanced2(const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_CCtx_params cctxParams, + ZSTD_customMem customMem) +{ + int const enableDedicatedDictSearch = cctxParams.enableDedicatedDictSearch && + ZSTD_dedicatedDictSearch_isSupported(cctxParams.compressionLevel, dictSize); + if (!enableDedicatedDictSearch) + return ZSTD_createCDict_advanced(dict, dictSize, + dictLoadMethod, dictContentType, cctxParams.cParams, + customMem); + { + ZSTD_compressionParameters const cParams = ZSTD_dedicatedDictSearch_getCParams( + cctxParams.compressionLevel, dictSize); + return ZSTD_createCDict_advanced(dict, dictSize, + dictLoadMethod, dictContentType, cParams, customMem); + } +} + ZSTD_CDict* ZSTD_createCDict(const void* dict, size_t dictSize, int compressionLevel) { ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize); diff --git a/lib/zstd.h b/lib/zstd.h index ea3e4653..fe5a865d 100644 --- a/lib/zstd.h +++ b/lib/zstd.h @@ -1417,6 +1417,12 @@ ZSTDLIB_API ZSTD_CDict* ZSTD_createCDict_advanced(const void* dict, size_t dictS ZSTD_compressionParameters cParams, ZSTD_customMem customMem); +ZSTDLIB_API ZSTD_CDict* ZSTD_createCDict_advanced2(const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_CCtx_params cctxParams, + ZSTD_customMem customMem); + ZSTDLIB_API ZSTD_DDict* ZSTD_createDDict_advanced(const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType,