{ U32 const magic = MEM_readLE32(ress.srcBuffer);
#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1)
if (ZSTD_isLegacy(magic)) {
- filesize += FIO_decompressLegacyFrame(dstFile, srcFile, magic);
+ filesize += FIO_decompressLegacyFrame(dstFile, srcFile, ress.dictBuffer, ress.dstBufferSize, magic);
continue;
}
#endif /* ZSTD_LEGACY_SUPPORT */
size_t srcBufferSize;
void* dstBuffer;
size_t dstBufferSize;
- void* dictBuffer;
+ const void* dictBuffer;
size_t dictBufferSize;
ZBUFFv05_DCtx* dctx;
} dRessv05_t;
if (ZBUFFv05_isError(errorCode)) EXM_THROW(69, "Error : can't free ZBUFF context resource : %s", ZBUFFv05_getErrorName(errorCode));
free(ress.srcBuffer);
free(ress.dstBuffer);
- free(ress.dictBuffer);
}
/*===== General legacy dispatcher =====*/
-unsigned long long FIO_decompressLegacyFrame(FILE* foutput, FILE* finput, U32 magicNumberLE)
+unsigned long long FIO_decompressLegacyFrame(FILE* foutput, FILE* finput,
+ const void* dictBuffer, size_t dictSize,
+ U32 magicNumberLE)
{
switch(magicNumberLE)
{
}
case ZSTDv05_MAGICNUMBER :
{ dRessv05_t r = FIOv05_createDResources();
- unsigned long long const s = FIOv05_decompressFrame(r, foutput, finput);
- FIOv05_freeDResources(r);
- return s;
- }
+ r.dictBuffer = dictBuffer;
+ r.dictBufferSize = dictSize;
+ { unsigned long long const s = FIOv05_decompressFrame(r, foutput, finput);
+ FIOv05_freeDResources(r);
+ return s;
+ } }
default :
return ERROR(prefix_unknown);
}
/* *************************************
* Stream/File functions
***************************************/
-unsigned long long FIO_decompressLegacyFrame(FILE* foutput, FILE* finput, U32 magicNumberLE);
+unsigned long long FIO_decompressLegacyFrame(FILE* foutput, FILE* finput,
+ const void* dictBuffer, size_t dictSize,
+ U32 magicNumberLE);
#if defined (__cplusplus)