Lines Matching refs:dctx
216 size_t ZSTD_sizeof_DCtx (const ZSTD_DCtx* dctx) in ZSTD_sizeof_DCtx() argument
218 if (dctx==NULL) return 0; /* support sizeof NULL */ in ZSTD_sizeof_DCtx()
219 return sizeof(*dctx) in ZSTD_sizeof_DCtx()
220 + ZSTD_sizeof_DDict(dctx->ddictLocal) in ZSTD_sizeof_DCtx()
221 + dctx->inBuffSize + dctx->outBuffSize; in ZSTD_sizeof_DCtx()
235 static void ZSTD_DCtx_resetParameters(ZSTD_DCtx* dctx) in ZSTD_DCtx_resetParameters() argument
237 assert(dctx->streamStage == zdss_init); in ZSTD_DCtx_resetParameters()
238 dctx->format = ZSTD_f_zstd1; in ZSTD_DCtx_resetParameters()
239 dctx->maxWindowSize = ZSTD_MAXWINDOWSIZE_DEFAULT; in ZSTD_DCtx_resetParameters()
240 dctx->outBufferMode = ZSTD_bm_buffered; in ZSTD_DCtx_resetParameters()
241 dctx->forceIgnoreChecksum = ZSTD_d_validateChecksum; in ZSTD_DCtx_resetParameters()
242 dctx->refMultipleDDicts = ZSTD_rmd_refSingleDDict; in ZSTD_DCtx_resetParameters()
243 dctx->disableHufAsm = 0; in ZSTD_DCtx_resetParameters()
244 dctx->maxBlockSizeParam = 0; in ZSTD_DCtx_resetParameters()
247 static void ZSTD_initDCtx_internal(ZSTD_DCtx* dctx) in ZSTD_initDCtx_internal() argument
249 dctx->staticSize = 0; in ZSTD_initDCtx_internal()
250 dctx->ddict = NULL; in ZSTD_initDCtx_internal()
251 dctx->ddictLocal = NULL; in ZSTD_initDCtx_internal()
252 dctx->dictEnd = NULL; in ZSTD_initDCtx_internal()
253 dctx->ddictIsCold = 0; in ZSTD_initDCtx_internal()
254 dctx->dictUses = ZSTD_dont_use; in ZSTD_initDCtx_internal()
255 dctx->inBuff = NULL; in ZSTD_initDCtx_internal()
256 dctx->inBuffSize = 0; in ZSTD_initDCtx_internal()
257 dctx->outBuffSize = 0; in ZSTD_initDCtx_internal()
258 dctx->streamStage = zdss_init; in ZSTD_initDCtx_internal()
259 dctx->noForwardProgress = 0; in ZSTD_initDCtx_internal()
260 dctx->oversizedDuration = 0; in ZSTD_initDCtx_internal()
261 dctx->isFrameDecompression = 1; in ZSTD_initDCtx_internal()
263 dctx->bmi2 = ZSTD_cpuSupportsBmi2(); in ZSTD_initDCtx_internal()
265 dctx->ddictSet = NULL; in ZSTD_initDCtx_internal()
266 ZSTD_DCtx_resetParameters(dctx); in ZSTD_initDCtx_internal()
268 dctx->dictContentEndForFuzzing = NULL; in ZSTD_initDCtx_internal()
274 ZSTD_DCtx* const dctx = (ZSTD_DCtx*) workspace; in ZSTD_initStaticDCtx() local
279 ZSTD_initDCtx_internal(dctx); in ZSTD_initStaticDCtx()
280 dctx->staticSize = workspaceSize; in ZSTD_initStaticDCtx()
281 dctx->inBuff = (char*)(dctx+1); in ZSTD_initStaticDCtx()
282 return dctx; in ZSTD_initStaticDCtx()
288 { ZSTD_DCtx* const dctx = (ZSTD_DCtx*)ZSTD_customMalloc(sizeof(*dctx), customMem); in ZSTD_createDCtx_internal() local
289 if (!dctx) return NULL; in ZSTD_createDCtx_internal()
290 dctx->customMem = customMem; in ZSTD_createDCtx_internal()
291 ZSTD_initDCtx_internal(dctx); in ZSTD_createDCtx_internal()
292 return dctx; in ZSTD_createDCtx_internal()
307 static void ZSTD_clearDict(ZSTD_DCtx* dctx) in ZSTD_clearDict() argument
309 ZSTD_freeDDict(dctx->ddictLocal); in ZSTD_clearDict()
310 dctx->ddictLocal = NULL; in ZSTD_clearDict()
311 dctx->ddict = NULL; in ZSTD_clearDict()
312 dctx->dictUses = ZSTD_dont_use; in ZSTD_clearDict()
315 size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx) in ZSTD_freeDCtx() argument
317 if (dctx==NULL) return 0; /* support free on NULL */ in ZSTD_freeDCtx()
318 RETURN_ERROR_IF(dctx->staticSize, memory_allocation, "not compatible with static DCtx"); in ZSTD_freeDCtx()
319 { ZSTD_customMem const cMem = dctx->customMem; in ZSTD_freeDCtx()
320 ZSTD_clearDict(dctx); in ZSTD_freeDCtx()
321 ZSTD_customFree(dctx->inBuff, cMem); in ZSTD_freeDCtx()
322 dctx->inBuff = NULL; in ZSTD_freeDCtx()
323 if (dctx->ddictSet) { in ZSTD_freeDCtx()
324 ZSTD_freeDDictHashSet(dctx->ddictSet, cMem); in ZSTD_freeDCtx()
325 dctx->ddictSet = NULL; in ZSTD_freeDCtx()
327 ZSTD_customFree(dctx, cMem); in ZSTD_freeDCtx()
347 static void ZSTD_DCtx_selectFrameDDict(ZSTD_DCtx* dctx) { in ZSTD_DCtx_selectFrameDDict() argument
348 assert(dctx->refMultipleDDicts && dctx->ddictSet); in ZSTD_DCtx_selectFrameDDict()
350 if (dctx->ddict) { in ZSTD_DCtx_selectFrameDDict()
351 … const ZSTD_DDict* frameDDict = ZSTD_DDictHashSet_getDDict(dctx->ddictSet, dctx->fParams.dictID); in ZSTD_DCtx_selectFrameDDict()
354 ZSTD_clearDict(dctx); in ZSTD_DCtx_selectFrameDDict()
355 dctx->dictID = dctx->fParams.dictID; in ZSTD_DCtx_selectFrameDDict()
356 dctx->ddict = frameDDict; in ZSTD_DCtx_selectFrameDDict()
357 dctx->dictUses = ZSTD_use_indefinitely; in ZSTD_DCtx_selectFrameDDict()
680 static size_t ZSTD_decodeFrameHeader(ZSTD_DCtx* dctx, const void* src, size_t headerSize) in ZSTD_decodeFrameHeader() argument
682 …size_t const result = ZSTD_getFrameHeader_advanced(&(dctx->fParams), src, headerSize, dctx->format… in ZSTD_decodeFrameHeader()
687 if (dctx->refMultipleDDicts == ZSTD_rmd_refMultipleDDicts && dctx->ddictSet) { in ZSTD_decodeFrameHeader()
688 ZSTD_DCtx_selectFrameDDict(dctx); in ZSTD_decodeFrameHeader()
695 RETURN_ERROR_IF(dctx->fParams.dictID && (dctx->dictID != dctx->fParams.dictID), in ZSTD_decodeFrameHeader()
698 dctx->validateChecksum = (dctx->fParams.checksumFlag && !dctx->forceIgnoreChecksum) ? 1 : 0; in ZSTD_decodeFrameHeader()
699 if (dctx->validateChecksum) xxh64_reset(&dctx->xxhState, 0); in ZSTD_decodeFrameHeader()
700 dctx->processedCSize += headerSize; in ZSTD_decodeFrameHeader()
861 size_t ZSTD_insertBlock(ZSTD_DCtx* dctx, const void* blockStart, size_t blockSize) in ZSTD_insertBlock() argument
864 ZSTD_checkContinuity(dctx, blockStart, blockSize); in ZSTD_insertBlock()
865 dctx->previousDstEnd = (const char*)blockStart + blockSize; in ZSTD_insertBlock()
896 static void ZSTD_DCtx_trace_end(ZSTD_DCtx const* dctx, U64 uncompressedSize, U64 compressedSize, in… in ZSTD_DCtx_trace_end() argument
898 (void)dctx; in ZSTD_DCtx_trace_end()
909 static size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx, in ZSTD_decompressFrame() argument
924 remainingSrcSize < ZSTD_FRAMEHEADERSIZE_MIN(dctx->format)+ZSTD_blockHeaderSize, in ZSTD_decompressFrame()
929 ip, ZSTD_FRAMEHEADERSIZE_PREFIX(dctx->format), dctx->format); in ZSTD_decompressFrame()
933 FORWARD_IF_ERROR( ZSTD_decodeFrameHeader(dctx, ip, frameHeaderSize) , ""); in ZSTD_decompressFrame()
938 if (dctx->maxBlockSizeParam != 0) in ZSTD_decompressFrame()
939 … dctx->fParams.blockSizeMax = MIN(dctx->fParams.blockSizeMax, (unsigned)dctx->maxBlockSizeParam); in ZSTD_decompressFrame()
973 assert(dctx->isFrameDecompression == 1); in ZSTD_decompressFrame()
974 …decodedSize = ZSTD_decompressBlock_internal(dctx, op, (size_t)(oBlockEnd-op), ip, cBlockSize, not_… in ZSTD_decompressFrame()
989 if (dctx->validateChecksum) { in ZSTD_decompressFrame()
990 xxh64_update(&dctx->xxhState, op, decodedSize); in ZSTD_decompressFrame()
1001 if (dctx->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN) { in ZSTD_decompressFrame()
1002 RETURN_ERROR_IF((U64)(op-ostart) != dctx->fParams.frameContentSize, in ZSTD_decompressFrame()
1005 if (dctx->fParams.checksumFlag) { /* Frame content checksum verification */ in ZSTD_decompressFrame()
1007 if (!dctx->forceIgnoreChecksum) { in ZSTD_decompressFrame()
1008 U32 const checkCalc = (U32)xxh64_digest(&dctx->xxhState); in ZSTD_decompressFrame()
1016 ZSTD_DCtx_trace_end(dctx, (U64)(op-ostart), (U64)(ip-istart), /* streaming */ 0); in ZSTD_decompressFrame()
1026 size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, in ZSTD_decompressMultiFrame() argument
1043 while (srcSize >= ZSTD_startingInputLength(dctx->format)) { in ZSTD_decompressMultiFrame()
1046 if (dctx->format == ZSTD_f_zstd1 && srcSize >= 4) { in ZSTD_decompressMultiFrame()
1062 FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDDict(dctx, ddict), ""); in ZSTD_decompressMultiFrame()
1066 FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDict(dctx, dict, dictSize), ""); in ZSTD_decompressMultiFrame()
1068 ZSTD_checkContinuity(dctx, dst, dstCapacity); in ZSTD_decompressMultiFrame()
1070 { const size_t res = ZSTD_decompressFrame(dctx, dst, dstCapacity, in ZSTD_decompressMultiFrame()
1097 size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx, in ZSTD_decompress_usingDict() argument
1102 return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, dict, dictSize, NULL); in ZSTD_decompress_usingDict()
1106 static ZSTD_DDict const* ZSTD_getDDict(ZSTD_DCtx* dctx) in ZSTD_getDDict() argument
1108 switch (dctx->dictUses) { in ZSTD_getDDict()
1113 ZSTD_clearDict(dctx); in ZSTD_getDDict()
1116 return dctx->ddict; in ZSTD_getDDict()
1118 dctx->dictUses = ZSTD_dont_use; in ZSTD_getDDict()
1119 return dctx->ddict; in ZSTD_getDDict()
1123 size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t … in ZSTD_decompressDCtx() argument
1125 return ZSTD_decompress_usingDDict(dctx, dst, dstCapacity, src, srcSize, ZSTD_getDDict(dctx)); in ZSTD_decompressDCtx()
1133 ZSTD_DCtx* const dctx = ZSTD_createDCtx_internal(ZSTD_defaultCMem); in ZSTD_decompress() local
1134 RETURN_ERROR_IF(dctx==NULL, memory_allocation, "NULL pointer!"); in ZSTD_decompress()
1135 regenSize = ZSTD_decompressDCtx(dctx, dst, dstCapacity, src, srcSize); in ZSTD_decompress()
1136 ZSTD_freeDCtx(dctx); in ZSTD_decompress()
1139 ZSTD_DCtx dctx; in ZSTD_decompress()
1140 ZSTD_initDCtx_internal(&dctx); in ZSTD_decompress()
1141 return ZSTD_decompressDCtx(&dctx, dst, dstCapacity, src, srcSize); in ZSTD_decompress()
1150 size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx) { return dctx->expected; } in ZSTD_nextSrcSizeToDecompress() argument
1162 static size_t ZSTD_nextSrcSizeToDecompressWithInputSize(ZSTD_DCtx* dctx, size_t inputSize) { in ZSTD_nextSrcSizeToDecompressWithInputSize() argument
1163 if (!(dctx->stage == ZSTDds_decompressBlock || dctx->stage == ZSTDds_decompressLastBlock)) in ZSTD_nextSrcSizeToDecompressWithInputSize()
1164 return dctx->expected; in ZSTD_nextSrcSizeToDecompressWithInputSize()
1165 if (dctx->bType != bt_raw) in ZSTD_nextSrcSizeToDecompressWithInputSize()
1166 return dctx->expected; in ZSTD_nextSrcSizeToDecompressWithInputSize()
1167 return BOUNDED(1, inputSize, dctx->expected); in ZSTD_nextSrcSizeToDecompressWithInputSize()
1170 ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx) { in ZSTD_nextInputType() argument
1171 switch(dctx->stage) in ZSTD_nextInputType()
1195 static int ZSTD_isSkipFrame(ZSTD_DCtx* dctx) { return dctx->stage == ZSTDds_skipFrame; } in ZSTD_isSkipFrame() argument
1201 size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, siz… in ZSTD_decompressContinue() argument
1205 …RETURN_ERROR_IF(srcSize != ZSTD_nextSrcSizeToDecompressWithInputSize(dctx, srcSize), srcSize_wrong… in ZSTD_decompressContinue()
1206 ZSTD_checkContinuity(dctx, dst, dstCapacity); in ZSTD_decompressContinue()
1208 dctx->processedCSize += srcSize; in ZSTD_decompressContinue()
1210 switch (dctx->stage) in ZSTD_decompressContinue()
1214 if (dctx->format == ZSTD_f_zstd1) { /* allows header */ in ZSTD_decompressContinue()
1217 ZSTD_memcpy(dctx->headerBuffer, src, srcSize); in ZSTD_decompressContinue()
1218 …dctx->expected = ZSTD_SKIPPABLEHEADERSIZE - srcSize; /* remaining to load to get full skippable f… in ZSTD_decompressContinue()
1219 dctx->stage = ZSTDds_decodeSkippableHeader; in ZSTD_decompressContinue()
1222 dctx->headerSize = ZSTD_frameHeaderSize_internal(src, srcSize, dctx->format); in ZSTD_decompressContinue()
1223 if (ZSTD_isError(dctx->headerSize)) return dctx->headerSize; in ZSTD_decompressContinue()
1224 ZSTD_memcpy(dctx->headerBuffer, src, srcSize); in ZSTD_decompressContinue()
1225 dctx->expected = dctx->headerSize - srcSize; in ZSTD_decompressContinue()
1226 dctx->stage = ZSTDds_decodeFrameHeader; in ZSTD_decompressContinue()
1231 ZSTD_memcpy(dctx->headerBuffer + (dctx->headerSize - srcSize), src, srcSize); in ZSTD_decompressContinue()
1232 FORWARD_IF_ERROR(ZSTD_decodeFrameHeader(dctx, dctx->headerBuffer, dctx->headerSize), ""); in ZSTD_decompressContinue()
1233 dctx->expected = ZSTD_blockHeaderSize; in ZSTD_decompressContinue()
1234 dctx->stage = ZSTDds_decodeBlockHeader; in ZSTD_decompressContinue()
1241 …RETURN_ERROR_IF(cBlockSize > dctx->fParams.blockSizeMax, corruption_detected, "Block Size Exceeds … in ZSTD_decompressContinue()
1242 dctx->expected = cBlockSize; in ZSTD_decompressContinue()
1243 dctx->bType = bp.blockType; in ZSTD_decompressContinue()
1244 dctx->rleSize = bp.origSize; in ZSTD_decompressContinue()
1246 dctx->stage = bp.lastBlock ? ZSTDds_decompressLastBlock : ZSTDds_decompressBlock; in ZSTD_decompressContinue()
1251 if (dctx->fParams.checksumFlag) { in ZSTD_decompressContinue()
1252 dctx->expected = 4; in ZSTD_decompressContinue()
1253 dctx->stage = ZSTDds_checkChecksum; in ZSTD_decompressContinue()
1255 dctx->expected = 0; /* end of frame */ in ZSTD_decompressContinue()
1256 dctx->stage = ZSTDds_getFrameHeaderSize; in ZSTD_decompressContinue()
1259 dctx->expected = ZSTD_blockHeaderSize; /* jump to next header */ in ZSTD_decompressContinue()
1260 dctx->stage = ZSTDds_decodeBlockHeader; in ZSTD_decompressContinue()
1269 switch(dctx->bType) in ZSTD_decompressContinue()
1273 assert(dctx->isFrameDecompression == 1); in ZSTD_decompressContinue()
1274 … rSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, is_streaming); in ZSTD_decompressContinue()
1275 dctx->expected = 0; /* Streaming not supported */ in ZSTD_decompressContinue()
1278 assert(srcSize <= dctx->expected); in ZSTD_decompressContinue()
1282 dctx->expected -= rSize; in ZSTD_decompressContinue()
1285 rSize = ZSTD_setRleBlock(dst, dstCapacity, *(const BYTE*)src, dctx->rleSize); in ZSTD_decompressContinue()
1286 dctx->expected = 0; /* Streaming not supported */ in ZSTD_decompressContinue()
1293 …RETURN_ERROR_IF(rSize > dctx->fParams.blockSizeMax, corruption_detected, "Decompressed Block Size … in ZSTD_decompressContinue()
1295 dctx->decodedSize += rSize; in ZSTD_decompressContinue()
1296 if (dctx->validateChecksum) xxh64_update(&dctx->xxhState, dst, rSize); in ZSTD_decompressContinue()
1297 dctx->previousDstEnd = (char*)dst + rSize; in ZSTD_decompressContinue()
1300 if (dctx->expected > 0) { in ZSTD_decompressContinue()
1304 if (dctx->stage == ZSTDds_decompressLastBlock) { /* end of frame */ in ZSTD_decompressContinue()
1305 … DEBUGLOG(4, "ZSTD_decompressContinue: decoded size from frame : %u", (unsigned)dctx->decodedSize); in ZSTD_decompressContinue()
1307 dctx->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN in ZSTD_decompressContinue()
1308 && dctx->decodedSize != dctx->fParams.frameContentSize, in ZSTD_decompressContinue()
1310 if (dctx->fParams.checksumFlag) { /* another round for frame checksum */ in ZSTD_decompressContinue()
1311 dctx->expected = 4; in ZSTD_decompressContinue()
1312 dctx->stage = ZSTDds_checkChecksum; in ZSTD_decompressContinue()
1314 … ZSTD_DCtx_trace_end(dctx, dctx->decodedSize, dctx->processedCSize, /* streaming */ 1); in ZSTD_decompressContinue()
1315 dctx->expected = 0; /* ends here */ in ZSTD_decompressContinue()
1316 dctx->stage = ZSTDds_getFrameHeaderSize; in ZSTD_decompressContinue()
1319 dctx->stage = ZSTDds_decodeBlockHeader; in ZSTD_decompressContinue()
1320 dctx->expected = ZSTD_blockHeaderSize; in ZSTD_decompressContinue()
1328 if (dctx->validateChecksum) { in ZSTD_decompressContinue()
1329 U32 const h32 = (U32)xxh64_digest(&dctx->xxhState); in ZSTD_decompressContinue()
1334 ZSTD_DCtx_trace_end(dctx, dctx->decodedSize, dctx->processedCSize, /* streaming */ 1); in ZSTD_decompressContinue()
1335 dctx->expected = 0; in ZSTD_decompressContinue()
1336 dctx->stage = ZSTDds_getFrameHeaderSize; in ZSTD_decompressContinue()
1343 assert(dctx->format != ZSTD_f_zstd1_magicless); in ZSTD_decompressContinue()
1344 …ZSTD_memcpy(dctx->headerBuffer + (ZSTD_SKIPPABLEHEADERSIZE - srcSize), src, srcSize); /* complet… in ZSTD_decompressContinue()
1345 …dctx->expected = MEM_readLE32(dctx->headerBuffer + ZSTD_FRAMEIDSIZE); /* note : dctx->expected c… in ZSTD_decompressContinue()
1346 dctx->stage = ZSTDds_skipFrame; in ZSTD_decompressContinue()
1350 dctx->expected = 0; in ZSTD_decompressContinue()
1351 dctx->stage = ZSTDds_getFrameHeaderSize; in ZSTD_decompressContinue()
1361 static size_t ZSTD_refDictContent(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) in ZSTD_refDictContent() argument
1363 dctx->dictEnd = dctx->previousDstEnd; in ZSTD_refDictContent()
1364 …dctx->virtualStart = (const char*)dict - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx… in ZSTD_refDictContent()
1365 dctx->prefixStart = dict; in ZSTD_refDictContent()
1366 dctx->previousDstEnd = (const char*)dict + dictSize; in ZSTD_refDictContent()
1368 dctx->dictContentBeginForFuzzing = dctx->prefixStart; in ZSTD_refDictContent()
1369 dctx->dictContentEndForFuzzing = dctx->previousDstEnd; in ZSTD_refDictContent()
1465 static size_t ZSTD_decompress_insertDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) in ZSTD_decompress_insertDictionary() argument
1467 if (dictSize < 8) return ZSTD_refDictContent(dctx, dict, dictSize); in ZSTD_decompress_insertDictionary()
1470 return ZSTD_refDictContent(dctx, dict, dictSize); /* pure content mode */ in ZSTD_decompress_insertDictionary()
1472 dctx->dictID = MEM_readLE32((const char*)dict + ZSTD_FRAMEIDSIZE); in ZSTD_decompress_insertDictionary()
1475 { size_t const eSize = ZSTD_loadDEntropy(&dctx->entropy, dict, dictSize); in ZSTD_decompress_insertDictionary()
1480 dctx->litEntropy = dctx->fseEntropy = 1; in ZSTD_decompress_insertDictionary()
1483 return ZSTD_refDictContent(dctx, dict, dictSize); in ZSTD_decompress_insertDictionary()
1486 size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx) in ZSTD_decompressBegin() argument
1488 assert(dctx != NULL); in ZSTD_decompressBegin()
1489 … dctx->expected = ZSTD_startingInputLength(dctx->format); /* dctx->format must be properly set */ in ZSTD_decompressBegin()
1490 dctx->stage = ZSTDds_getFrameHeaderSize; in ZSTD_decompressBegin()
1491 dctx->processedCSize = 0; in ZSTD_decompressBegin()
1492 dctx->decodedSize = 0; in ZSTD_decompressBegin()
1493 dctx->previousDstEnd = NULL; in ZSTD_decompressBegin()
1494 dctx->prefixStart = NULL; in ZSTD_decompressBegin()
1495 dctx->virtualStart = NULL; in ZSTD_decompressBegin()
1496 dctx->dictEnd = NULL; in ZSTD_decompressBegin()
1497 …dctx->entropy.hufTable[0] = (HUF_DTable)((ZSTD_HUFFDTABLE_CAPACITY_LOG)*0x1000001); /* cover both… in ZSTD_decompressBegin()
1498 dctx->litEntropy = dctx->fseEntropy = 0; in ZSTD_decompressBegin()
1499 dctx->dictID = 0; in ZSTD_decompressBegin()
1500 dctx->bType = bt_reserved; in ZSTD_decompressBegin()
1501 dctx->isFrameDecompression = 1; in ZSTD_decompressBegin()
1502 ZSTD_STATIC_ASSERT(sizeof(dctx->entropy.rep) == sizeof(repStartValue)); in ZSTD_decompressBegin()
1503 ZSTD_memcpy(dctx->entropy.rep, repStartValue, sizeof(repStartValue)); /* initial repcodes */ in ZSTD_decompressBegin()
1504 dctx->LLTptr = dctx->entropy.LLTable; in ZSTD_decompressBegin()
1505 dctx->MLTptr = dctx->entropy.MLTable; in ZSTD_decompressBegin()
1506 dctx->OFTptr = dctx->entropy.OFTable; in ZSTD_decompressBegin()
1507 dctx->HUFptr = dctx->entropy.hufTable; in ZSTD_decompressBegin()
1511 size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) in ZSTD_decompressBegin_usingDict() argument
1513 FORWARD_IF_ERROR( ZSTD_decompressBegin(dctx) , ""); in ZSTD_decompressBegin_usingDict()
1516 ZSTD_isError(ZSTD_decompress_insertDictionary(dctx, dict, dictSize)), in ZSTD_decompressBegin_usingDict()
1524 size_t ZSTD_decompressBegin_usingDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) in ZSTD_decompressBegin_usingDDict() argument
1527 assert(dctx != NULL); in ZSTD_decompressBegin_usingDDict()
1532 dctx->ddictIsCold = (dctx->dictEnd != dictEnd); in ZSTD_decompressBegin_usingDDict()
1534 dctx->ddictIsCold ? "~cold~" : "hot!"); in ZSTD_decompressBegin_usingDDict()
1536 FORWARD_IF_ERROR( ZSTD_decompressBegin(dctx) , ""); in ZSTD_decompressBegin_usingDDict()
1538 ZSTD_copyDDictParameters(dctx, ddict); in ZSTD_decompressBegin_usingDDict()
1579 size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx, in ZSTD_decompress_usingDDict() argument
1585 return ZSTD_decompressMultiFrame(dctx, dst, dstCapacity, src, srcSize, in ZSTD_decompress_usingDDict()
1622 size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, in ZSTD_DCtx_loadDictionary_advanced() argument
1627 RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); in ZSTD_DCtx_loadDictionary_advanced()
1628 ZSTD_clearDict(dctx); in ZSTD_DCtx_loadDictionary_advanced()
1630 …dctx->ddictLocal = ZSTD_createDDict_advanced(dict, dictSize, dictLoadMethod, dictContentType, dctx… in ZSTD_DCtx_loadDictionary_advanced()
1631 RETURN_ERROR_IF(dctx->ddictLocal == NULL, memory_allocation, "NULL pointer!"); in ZSTD_DCtx_loadDictionary_advanced()
1632 dctx->ddict = dctx->ddictLocal; in ZSTD_DCtx_loadDictionary_advanced()
1633 dctx->dictUses = ZSTD_use_indefinitely; in ZSTD_DCtx_loadDictionary_advanced()
1638 size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) in ZSTD_DCtx_loadDictionary_byReference() argument
1640 return ZSTD_DCtx_loadDictionary_advanced(dctx, dict, dictSize, ZSTD_dlm_byRef, ZSTD_dct_auto); in ZSTD_DCtx_loadDictionary_byReference()
1643 size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) in ZSTD_DCtx_loadDictionary() argument
1645 return ZSTD_DCtx_loadDictionary_advanced(dctx, dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto); in ZSTD_DCtx_loadDictionary()
1648 size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize, ZSTD_di… in ZSTD_DCtx_refPrefix_advanced() argument
1650 …FORWARD_IF_ERROR(ZSTD_DCtx_loadDictionary_advanced(dctx, prefix, prefixSize, ZSTD_dlm_byRef, dictC… in ZSTD_DCtx_refPrefix_advanced()
1651 dctx->dictUses = ZSTD_use_once; in ZSTD_DCtx_refPrefix_advanced()
1655 size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize) in ZSTD_DCtx_refPrefix() argument
1657 return ZSTD_DCtx_refPrefix_advanced(dctx, prefix, prefixSize, ZSTD_dct_rawContent); in ZSTD_DCtx_refPrefix()
1684 size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* dctx, const ZSTD_DDict* ddict) in ZSTD_initDStream_usingDDict() argument
1687 FORWARD_IF_ERROR( ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only) , ""); in ZSTD_initDStream_usingDDict()
1688 FORWARD_IF_ERROR( ZSTD_DCtx_refDDict(dctx, ddict) , ""); in ZSTD_initDStream_usingDDict()
1689 return ZSTD_startingInputLength(dctx->format); in ZSTD_initDStream_usingDDict()
1695 size_t ZSTD_resetDStream(ZSTD_DStream* dctx) in ZSTD_resetDStream() argument
1698 FORWARD_IF_ERROR(ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only), ""); in ZSTD_resetDStream()
1699 return ZSTD_startingInputLength(dctx->format); in ZSTD_resetDStream()
1703 size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) in ZSTD_DCtx_refDDict() argument
1705 RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); in ZSTD_DCtx_refDDict()
1706 ZSTD_clearDict(dctx); in ZSTD_DCtx_refDDict()
1708 dctx->ddict = ddict; in ZSTD_DCtx_refDDict()
1709 dctx->dictUses = ZSTD_use_indefinitely; in ZSTD_DCtx_refDDict()
1710 if (dctx->refMultipleDDicts == ZSTD_rmd_refMultipleDDicts) { in ZSTD_DCtx_refDDict()
1711 if (dctx->ddictSet == NULL) { in ZSTD_DCtx_refDDict()
1712 dctx->ddictSet = ZSTD_createDDictHashSet(dctx->customMem); in ZSTD_DCtx_refDDict()
1713 if (!dctx->ddictSet) { in ZSTD_DCtx_refDDict()
1717 … assert(!dctx->staticSize); /* Impossible: ddictSet cannot have been allocated if static dctx */ in ZSTD_DCtx_refDDict()
1718 … FORWARD_IF_ERROR(ZSTD_DDictHashSet_addDDict(dctx->ddictSet, ddict, dctx->customMem), ""); in ZSTD_DCtx_refDDict()
1727 size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize) in ZSTD_DCtx_setMaxWindowSize() argument
1732 RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); in ZSTD_DCtx_setMaxWindowSize()
1735 dctx->maxWindowSize = maxWindowSize; in ZSTD_DCtx_setMaxWindowSize()
1739 size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format) in ZSTD_DCtx_setFormat() argument
1741 return ZSTD_DCtx_setParameter(dctx, ZSTD_d_format, (int)format); in ZSTD_DCtx_setFormat()
1800 size_t ZSTD_DCtx_getParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int* value) in ZSTD_DCtx_getParameter() argument
1804 *value = (int)ZSTD_highbit32((U32)dctx->maxWindowSize); in ZSTD_DCtx_getParameter()
1807 *value = (int)dctx->format; in ZSTD_DCtx_getParameter()
1810 *value = (int)dctx->outBufferMode; in ZSTD_DCtx_getParameter()
1813 *value = (int)dctx->forceIgnoreChecksum; in ZSTD_DCtx_getParameter()
1816 *value = (int)dctx->refMultipleDDicts; in ZSTD_DCtx_getParameter()
1819 *value = (int)dctx->disableHufAsm; in ZSTD_DCtx_getParameter()
1822 *value = dctx->maxBlockSizeParam; in ZSTD_DCtx_getParameter()
1829 size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter dParam, int value) in ZSTD_DCtx_setParameter() argument
1831 RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); in ZSTD_DCtx_setParameter()
1836 dctx->maxWindowSize = ((size_t)1) << value; in ZSTD_DCtx_setParameter()
1840 dctx->format = (ZSTD_format_e)value; in ZSTD_DCtx_setParameter()
1844 dctx->outBufferMode = (ZSTD_bufferMode_e)value; in ZSTD_DCtx_setParameter()
1848 dctx->forceIgnoreChecksum = (ZSTD_forceIgnoreChecksum_e)value; in ZSTD_DCtx_setParameter()
1852 if (dctx->staticSize != 0) { in ZSTD_DCtx_setParameter()
1855 dctx->refMultipleDDicts = (ZSTD_refMultipleDDicts_e)value; in ZSTD_DCtx_setParameter()
1859 dctx->disableHufAsm = value != 0; in ZSTD_DCtx_setParameter()
1863 dctx->maxBlockSizeParam = value; in ZSTD_DCtx_setParameter()
1870 size_t ZSTD_DCtx_reset(ZSTD_DCtx* dctx, ZSTD_ResetDirective reset) in ZSTD_DCtx_reset() argument
1874 dctx->streamStage = zdss_init; in ZSTD_DCtx_reset()
1875 dctx->noForwardProgress = 0; in ZSTD_DCtx_reset()
1876 dctx->isFrameDecompression = 1; in ZSTD_DCtx_reset()
1880 RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); in ZSTD_DCtx_reset()
1881 ZSTD_clearDict(dctx); in ZSTD_DCtx_reset()
1882 ZSTD_DCtx_resetParameters(dctx); in ZSTD_DCtx_reset()
1888 size_t ZSTD_sizeof_DStream(const ZSTD_DStream* dctx) in ZSTD_sizeof_DStream() argument
1890 return ZSTD_sizeof_DCtx(dctx); in ZSTD_sizeof_DStream()
2286 ZSTD_DCtx* dctx, in ZSTD_decompressStream_simpleArgs() argument
2298 { size_t const cErr = ZSTD_decompressStream(dctx, &output, &input); in ZSTD_decompressStream_simpleArgs()