aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorW. Felix Handte <w@felixhandte.com>2018-03-21 14:49:47 -0400
committerW. Felix Handte <w@felixhandte.com>2018-04-19 20:54:35 -0400
commitfdeead0b09188213e51e037edcf9c9daf88d25c4 (patch)
treedc19adae782e95db3085d54ebf0bd2966f3fbe66 /lib
parenta992d11fc2204b7cb0a70962aa5911a58ed4918c (diff)
downloadlz4-fdeead0b09188213e51e037edcf9c9daf88d25c4.tar.gz
Set dictCtx Rather than memcpy'ing Ctx
Diffstat (limited to 'lib')
-rw-r--r--lib/lz4frame.c9
-rw-r--r--lib/lz4hc.c1
2 files changed, 4 insertions, 6 deletions
diff --git a/lib/lz4frame.c b/lib/lz4frame.c
index 00000238..821cb49b 100644
--- a/lib/lz4frame.c
+++ b/lib/lz4frame.c
@@ -549,12 +549,9 @@ static void LZ4F_applyCDict(void* ctx,
LZ4_resetStream_fast((LZ4_stream_t *)ctx);
LZ4_attach_dictionary((LZ4_stream_t *)ctx, cdict ? cdict->fastCtx : NULL);
} else {
- if (cdict) {
- memcpy(ctx, cdict->HCCtx, sizeof(*cdict->HCCtx));
- LZ4_setCompressionLevel((LZ4_streamHC_t*)ctx, level);
- } else {
- LZ4_resetStreamHC((LZ4_streamHC_t*)(ctx), level);
- }
+ LZ4HC_CCtx_internal *internal_ctx = &((LZ4_streamHC_t *)ctx)->internal_donotuse;
+ LZ4_resetStreamHC((LZ4_streamHC_t*)ctx, level);
+ internal_ctx->dictCtx = cdict ? &(cdict->HCCtx->internal_donotuse) : NULL;
}
}
diff --git a/lib/lz4hc.c b/lib/lz4hc.c
index 6890613e..16830c29 100644
--- a/lib/lz4hc.c
+++ b/lib/lz4hc.c
@@ -729,6 +729,7 @@ void LZ4_resetStreamHC (LZ4_streamHC_t* LZ4_streamHCPtr, int compressionLevel)
LZ4_STATIC_ASSERT(sizeof(LZ4HC_CCtx_internal) <= sizeof(size_t) * LZ4_STREAMHCSIZE_SIZET); /* if compilation fails here, LZ4_STREAMHCSIZE must be increased */
DEBUGLOG(4, "LZ4_resetStreamHC(%p, %d)", LZ4_streamHCPtr, compressionLevel);
LZ4_streamHCPtr->internal_donotuse.base = NULL;
+ LZ4_streamHCPtr->internal_donotuse.dictCtx = NULL;
LZ4_setCompressionLevel(LZ4_streamHCPtr, compressionLevel);
}