CLI supports dictionary decompression in legacy mode v0.5.x
parent
f849462d4c
commit
0c0f314550
|
@ -598,7 +598,7 @@ static int FIO_decompressSrcFile(dRess_t ress, const char* srcFileName)
|
||||||
{ U32 const magic = MEM_readLE32(ress.srcBuffer);
|
{ U32 const magic = MEM_readLE32(ress.srcBuffer);
|
||||||
#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1)
|
#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1)
|
||||||
if (ZSTD_isLegacy(magic)) {
|
if (ZSTD_isLegacy(magic)) {
|
||||||
filesize += FIO_decompressLegacyFrame(dstFile, srcFile, magic);
|
filesize += FIO_decompressLegacyFrame(dstFile, srcFile, ress.dictBuffer, ress.dstBufferSize, magic);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#endif /* ZSTD_LEGACY_SUPPORT */
|
#endif /* ZSTD_LEGACY_SUPPORT */
|
||||||
|
|
|
@ -405,7 +405,7 @@ typedef struct {
|
||||||
size_t srcBufferSize;
|
size_t srcBufferSize;
|
||||||
void* dstBuffer;
|
void* dstBuffer;
|
||||||
size_t dstBufferSize;
|
size_t dstBufferSize;
|
||||||
void* dictBuffer;
|
const void* dictBuffer;
|
||||||
size_t dictBufferSize;
|
size_t dictBufferSize;
|
||||||
ZBUFFv05_DCtx* dctx;
|
ZBUFFv05_DCtx* dctx;
|
||||||
} dRessv05_t;
|
} dRessv05_t;
|
||||||
|
@ -435,7 +435,6 @@ static void FIOv05_freeDResources(dRessv05_t ress)
|
||||||
if (ZBUFFv05_isError(errorCode)) EXM_THROW(69, "Error : can't free ZBUFF context resource : %s", ZBUFFv05_getErrorName(errorCode));
|
if (ZBUFFv05_isError(errorCode)) EXM_THROW(69, "Error : can't free ZBUFF context resource : %s", ZBUFFv05_getErrorName(errorCode));
|
||||||
free(ress.srcBuffer);
|
free(ress.srcBuffer);
|
||||||
free(ress.dstBuffer);
|
free(ress.dstBuffer);
|
||||||
free(ress.dictBuffer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -476,7 +475,9 @@ unsigned long long FIOv05_decompressFrame(dRessv05_t ress,
|
||||||
|
|
||||||
/*===== General legacy dispatcher =====*/
|
/*===== 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)
|
switch(magicNumberLE)
|
||||||
{
|
{
|
||||||
|
@ -494,10 +495,12 @@ unsigned long long FIO_decompressLegacyFrame(FILE* foutput, FILE* finput, U32 ma
|
||||||
}
|
}
|
||||||
case ZSTDv05_MAGICNUMBER :
|
case ZSTDv05_MAGICNUMBER :
|
||||||
{ dRessv05_t r = FIOv05_createDResources();
|
{ dRessv05_t r = FIOv05_createDResources();
|
||||||
unsigned long long const s = FIOv05_decompressFrame(r, foutput, finput);
|
r.dictBuffer = dictBuffer;
|
||||||
FIOv05_freeDResources(r);
|
r.dictBufferSize = dictSize;
|
||||||
return s;
|
{ unsigned long long const s = FIOv05_decompressFrame(r, foutput, finput);
|
||||||
}
|
FIOv05_freeDResources(r);
|
||||||
|
return s;
|
||||||
|
} }
|
||||||
default :
|
default :
|
||||||
return ERROR(prefix_unknown);
|
return ERROR(prefix_unknown);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,9 @@ void FIO_legacy_setNotificationLevel(unsigned level);
|
||||||
/* *************************************
|
/* *************************************
|
||||||
* Stream/File functions
|
* 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)
|
#if defined (__cplusplus)
|
||||||
|
|
Loading…
Reference in New Issue