From: Yann Collet Date: Wed, 21 Jun 2017 19:26:40 +0000 (-0700) Subject: free cdictLocal faster, suggested by @terrelln X-Git-Tag: v1.3.0~1^2~17^2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=83095970e699c2430dc2266f2472e1393aaf0822;p=thirdparty%2Fzstd.git free cdictLocal faster, suggested by @terrelln --- diff --git a/lib/compress/zstdmt_compress.c b/lib/compress/zstdmt_compress.c index 499c531c7..f07143c1a 100644 --- a/lib/compress/zstdmt_compress.c +++ b/lib/compress/zstdmt_compress.c @@ -583,13 +583,14 @@ size_t ZSTDMT_initCStream_internal(ZSTDMT_CCtx* zcs, zcs->frameContentSize = pledgedSrcSize; if (dict) { ZSTD_freeCDict(zcs->cdictLocal); - zcs->cdict = NULL; zcs->cdictLocal = ZSTD_createCDict_advanced(dict, dictSize, 0 /* byRef */, ZSTD_dm_auto, params.cParams, zcs->cMem); - if (zcs->cdictLocal == NULL) return ERROR(memory_allocation); zcs->cdict = zcs->cdictLocal; + if (zcs->cdictLocal == NULL) return ERROR(memory_allocation); } else { + ZSTD_freeCDict(zcs->cdictLocal); + zcs->cdictLocal = NULL; zcs->cdict = cdict; } @@ -627,7 +628,7 @@ size_t ZSTDMT_initCStream_usingCDict(ZSTDMT_CCtx* mtctx, unsigned long long pledgedSrcSize) { ZSTD_parameters params = ZSTD_getParamsFromCDict(cdict); - if (cdict==NULL) return ERROR(GENERIC); /* method incompatible with NULL cdict */ + if (cdict==NULL) return ERROR(dictionary_wrong); /* method incompatible with NULL cdict */ params.fParams = fParams; return ZSTDMT_initCStream_internal(mtctx, NULL, 0 /*dictSize*/, cdict, params, pledgedSrcSize);