From: Paul Cruz Date: Fri, 7 Jul 2017 22:13:40 +0000 (-0700) Subject: changed to using compressCCtx X-Git-Tag: v1.3.1^2~13^2^2~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0c236a28b13ccbc71465eba4c7a52bae96a8e8a;p=thirdparty%2Fzstd.git changed to using compressCCtx --- diff --git a/contrib/adaptive-compression/multi.c b/contrib/adaptive-compression/multi.c index 647d54ba4..943bd8564 100644 --- a/contrib/adaptive-compression/multi.c +++ b/contrib/adaptive-compression/multi.c @@ -72,6 +72,7 @@ typedef struct { stat_t stats; jobDescription* jobs; FILE* dstFile; + ZSTD_CCtx* cctx; } adaptCCtx; static void freeCompressionJobs(adaptCCtx* ctx) @@ -96,11 +97,12 @@ static int freeCCtx(adaptCCtx* ctx) int const jobWriteMutexError = pthread_mutex_destroy(&ctx->jobWrite_mutex); int const jobWriteCondError = pthread_cond_destroy(&ctx->jobWrite_cond); int const fileCloseError = (ctx->dstFile != NULL && ctx->dstFile != stdout) ? fclose(ctx->dstFile) : 0; + int const cctxError = ZSTD_isError(ZSTD_freeCCtx(ctx->cctx)) ? 1 : 0; if (ctx->jobs){ freeCompressionJobs(ctx); free(ctx->jobs); } - return compressedMutexError | compressedCondError | readyMutexError | readyCondError | fileCloseError | allJobsMutexError | allJobsCondError | jobWriteMutexError | jobWriteCondError; + return compressedMutexError | compressedCondError | readyMutexError | readyCondError | fileCloseError | allJobsMutexError | allJobsCondError | jobWriteMutexError | jobWriteCondError | cctxError; } } @@ -132,6 +134,12 @@ static adaptCCtx* createCCtx(unsigned numJobs, const char* const outFilename) ctx->threadError = 0; ctx->allJobsCompleted = 0; ctx->adaptParam = DEFAULT_ADAPT_PARAM; + ctx->cctx = ZSTD_createCCtx(); + if (!ctx->cctx) { + DISPLAY("Error: could not allocate ZSTD_CCtx\n"); + freeCCtx(ctx); + return NULL; + } if (!ctx->jobs) { DISPLAY("Error: could not allocate space for jobs during context creation\n"); freeCCtx(ctx); @@ -214,7 +222,7 @@ static void* compressionThread(void* arg) { unsigned const cLevel = adaptCompressionLevel(ctx); DEBUGLOG(2, "cLevel used: %u\n", cLevel); - size_t const compressedSize = ZSTD_compress(job->dst.start, job->dst.size, job->src.start, job->src.size, cLevel); + size_t const compressedSize = ZSTD_compressCCtx(ctx->cctx, job->dst.start, job->dst.size, job->src.start, job->src.size, cLevel); if (ZSTD_isError(compressedSize)) { ctx->threadError = 1; DISPLAY("Error: something went wrong during compression: %s\n", ZSTD_getErrorName(compressedSize));