Merge pull request #1549 from terrelln/ref-cdict-free

[libzstd] Free local cdict when referencing cdict
This commit is contained in:
Nick Terrell 2019-03-13 16:08:54 -07:00 committed by GitHub
commit ea3b81f02c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -839,6 +839,9 @@ ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary(ZSTD_CCtx* cctx, const void* dict, s
size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict)
{
RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong);
/* Free the existing local cdict (if any) to save memory. */
FORWARD_IF_ERROR( ZSTD_freeCDict(cctx->cdictLocal) );
cctx->cdictLocal = NULL;
cctx->cdict = cdict;
memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); /* exclusive */
return 0;