Lines Matching refs:zds
2194 ZSTD_DStream *zds; in ZSTD_createDStream_advanced() local
2199 zds = (ZSTD_DStream *)ZSTD_malloc(sizeof(ZSTD_DStream), customMem); in ZSTD_createDStream_advanced()
2200 if (zds == NULL) in ZSTD_createDStream_advanced()
2202 memset(zds, 0, sizeof(ZSTD_DStream)); in ZSTD_createDStream_advanced()
2203 memcpy(&zds->customMem, &customMem, sizeof(ZSTD_customMem)); in ZSTD_createDStream_advanced()
2204 zds->dctx = ZSTD_createDCtx_advanced(customMem); in ZSTD_createDStream_advanced()
2205 if (zds->dctx == NULL) { in ZSTD_createDStream_advanced()
2206 ZSTD_freeDStream(zds); in ZSTD_createDStream_advanced()
2209 zds->stage = zdss_init; in ZSTD_createDStream_advanced()
2210 zds->maxWindowSize = ZSTD_MAXWINDOWSIZE_DEFAULT; in ZSTD_createDStream_advanced()
2211 return zds; in ZSTD_createDStream_advanced()
2217 ZSTD_DStream *zds = ZSTD_createDStream_advanced(stackMem); in ZSTD_initDStream() local
2218 if (!zds) { in ZSTD_initDStream()
2222 zds->maxWindowSize = maxWindowSize; in ZSTD_initDStream()
2223 zds->stage = zdss_loadHeader; in ZSTD_initDStream()
2224 zds->lhSize = zds->inPos = zds->outStart = zds->outEnd = 0; in ZSTD_initDStream()
2225 ZSTD_freeDDict(zds->ddictLocal); in ZSTD_initDStream()
2226 zds->ddictLocal = NULL; in ZSTD_initDStream()
2227 zds->ddict = zds->ddictLocal; in ZSTD_initDStream()
2228 zds->legacyVersion = 0; in ZSTD_initDStream()
2229 zds->hostageByte = 0; in ZSTD_initDStream()
2232 size_t const blockSize = MIN(zds->maxWindowSize, ZSTD_BLOCKSIZE_ABSOLUTEMAX); in ZSTD_initDStream()
2233 size_t const neededOutSize = zds->maxWindowSize + blockSize + WILDCOPY_OVERLENGTH * 2; in ZSTD_initDStream()
2235 zds->inBuff = (char *)ZSTD_malloc(blockSize, zds->customMem); in ZSTD_initDStream()
2236 zds->inBuffSize = blockSize; in ZSTD_initDStream()
2237 zds->outBuff = (char *)ZSTD_malloc(neededOutSize, zds->customMem); in ZSTD_initDStream()
2238 zds->outBuffSize = neededOutSize; in ZSTD_initDStream()
2239 if (zds->inBuff == NULL || zds->outBuff == NULL) { in ZSTD_initDStream()
2240 ZSTD_freeDStream(zds); in ZSTD_initDStream()
2244 return zds; in ZSTD_initDStream()
2249 ZSTD_DStream *zds = ZSTD_initDStream(maxWindowSize, workspace, workspaceSize); in ZSTD_initDStream_usingDDict() local
2250 if (zds) { in ZSTD_initDStream_usingDDict()
2251 zds->ddict = ddict; in ZSTD_initDStream_usingDDict()
2253 return zds; in ZSTD_initDStream_usingDDict()
2256 size_t ZSTD_freeDStream(ZSTD_DStream *zds) in ZSTD_freeDStream() argument
2258 if (zds == NULL) in ZSTD_freeDStream()
2261 ZSTD_customMem const cMem = zds->customMem; in ZSTD_freeDStream()
2262 ZSTD_freeDCtx(zds->dctx); in ZSTD_freeDStream()
2263 zds->dctx = NULL; in ZSTD_freeDStream()
2264 ZSTD_freeDDict(zds->ddictLocal); in ZSTD_freeDStream()
2265 zds->ddictLocal = NULL; in ZSTD_freeDStream()
2266 ZSTD_free(zds->inBuff, cMem); in ZSTD_freeDStream()
2267 zds->inBuff = NULL; in ZSTD_freeDStream()
2268 ZSTD_free(zds->outBuff, cMem); in ZSTD_freeDStream()
2269 zds->outBuff = NULL; in ZSTD_freeDStream()
2270 ZSTD_free(zds, cMem); in ZSTD_freeDStream()
2280 size_t ZSTD_resetDStream(ZSTD_DStream *zds) in ZSTD_resetDStream() argument
2282 zds->stage = zdss_loadHeader; in ZSTD_resetDStream()
2283 zds->lhSize = zds->inPos = zds->outStart = zds->outEnd = 0; in ZSTD_resetDStream()
2284 zds->legacyVersion = 0; in ZSTD_resetDStream()
2285 zds->hostageByte = 0; in ZSTD_resetDStream()
2298 size_t ZSTD_decompressStream(ZSTD_DStream *zds, ZSTD_outBuffer *output, ZSTD_inBuffer *input) in ZSTD_decompressStream() argument
2309 switch (zds->stage) { in ZSTD_decompressStream()
2311 ZSTD_resetDStream(zds); /* transparent reset on starting decoding a new frame */ in ZSTD_decompressStream()
2315 size_t const hSize = ZSTD_getFrameParams(&zds->fParams, zds->headerBuffer, zds->lhSize); in ZSTD_decompressStream()
2319 size_t const toLoad = hSize - zds->lhSize; /* if hSize!=0, hSize > zds->lhSize */ in ZSTD_decompressStream()
2321 memcpy(zds->headerBuffer + zds->lhSize, ip, iend - ip); in ZSTD_decompressStream()
2322 zds->lhSize += iend - ip; in ZSTD_decompressStream()
2324 return (MAX(ZSTD_frameHeaderSize_min, hSize) - zds->lhSize) + in ZSTD_decompressStream()
2327 memcpy(zds->headerBuffer + zds->lhSize, ip, toLoad); in ZSTD_decompressStream()
2328 zds->lhSize = hSize; in ZSTD_decompressStream()
2334 if (zds->fParams.frameContentSize && zds->fParams.windowSize /* skippable frame if == 0 */ in ZSTD_decompressStream()
2335 && (U64)(size_t)(oend - op) >= zds->fParams.frameContentSize) { in ZSTD_decompressStream()
2338 …t const decompressedSize = ZSTD_decompress_usingDDict(zds->dctx, op, oend - op, istart, cSize, zds… in ZSTD_decompressStream()
2343 zds->dctx->expected = 0; in ZSTD_decompressStream()
2344 zds->stage = zdss_init; in ZSTD_decompressStream()
2351 ZSTD_refDDict(zds->dctx, zds->ddict); in ZSTD_decompressStream()
2353 …size_t const h1Size = ZSTD_nextSrcSizeToDecompress(zds->dctx); /* == ZSTD_frameHeaderSize_prefix */ in ZSTD_decompressStream()
2354 CHECK_F(ZSTD_decompressContinue(zds->dctx, NULL, 0, zds->headerBuffer, h1Size)); in ZSTD_decompressStream()
2356 size_t const h2Size = ZSTD_nextSrcSizeToDecompress(zds->dctx); in ZSTD_decompressStream()
2357 CHECK_F(ZSTD_decompressContinue(zds->dctx, NULL, 0, zds->headerBuffer + h1Size, h2Size)); in ZSTD_decompressStream()
2361 zds->fParams.windowSize = MAX(zds->fParams.windowSize, 1U << ZSTD_WINDOWLOG_ABSOLUTEMIN); in ZSTD_decompressStream()
2362 if (zds->fParams.windowSize > zds->maxWindowSize) in ZSTD_decompressStream()
2367 size_t const blockSize = MIN(zds->maxWindowSize, ZSTD_BLOCKSIZE_ABSOLUTEMAX); in ZSTD_decompressStream()
2368 size_t const neededOutSize = zds->maxWindowSize + blockSize + WILDCOPY_OVERLENGTH * 2; in ZSTD_decompressStream()
2369 if (zds->inBuffSize < blockSize) { in ZSTD_decompressStream()
2372 if (zds->outBuffSize < neededOutSize) { in ZSTD_decompressStream()
2375 zds->blockSize = blockSize; in ZSTD_decompressStream()
2377 zds->stage = zdss_read; in ZSTD_decompressStream()
2382 size_t const neededInSize = ZSTD_nextSrcSizeToDecompress(zds->dctx); in ZSTD_decompressStream()
2384 zds->stage = zdss_init; in ZSTD_decompressStream()
2389 const int isSkipFrame = ZSTD_isSkipFrame(zds->dctx); in ZSTD_decompressStream()
2390 size_t const decodedSize = ZSTD_decompressContinue(zds->dctx, zds->outBuff + zds->outStart, in ZSTD_decompressStream()
2391 (isSkipFrame ? 0 : zds->outBuffSize - zds->outStart), ip, neededInSize); in ZSTD_decompressStream()
2397 zds->outEnd = zds->outStart + decodedSize; in ZSTD_decompressStream()
2398 zds->stage = zdss_flush; in ZSTD_decompressStream()
2405 zds->stage = zdss_load; in ZSTD_decompressStream()
2411 size_t const neededInSize = ZSTD_nextSrcSizeToDecompress(zds->dctx); in ZSTD_decompressStream()
2412 …size_t const toLoad = neededInSize - zds->inPos; /* should always be <= remaining space within inB… in ZSTD_decompressStream()
2414 if (toLoad > zds->inBuffSize - zds->inPos) in ZSTD_decompressStream()
2416 loadedSize = ZSTD_limitCopy(zds->inBuff + zds->inPos, toLoad, ip, iend - ip); in ZSTD_decompressStream()
2418 zds->inPos += loadedSize; in ZSTD_decompressStream()
2426 const int isSkipFrame = ZSTD_isSkipFrame(zds->dctx); in ZSTD_decompressStream()
2427 … const decodedSize = ZSTD_decompressContinue(zds->dctx, zds->outBuff + zds->outStart, zds->outBuff… in ZSTD_decompressStream()
2428 zds->inBuff, neededInSize); in ZSTD_decompressStream()
2431 zds->inPos = 0; /* input is consumed */ in ZSTD_decompressStream()
2433 zds->stage = zdss_read; in ZSTD_decompressStream()
2436 zds->outEnd = zds->outStart + decodedSize; in ZSTD_decompressStream()
2437 zds->stage = zdss_flush; in ZSTD_decompressStream()
2444 size_t const toFlushSize = zds->outEnd - zds->outStart; in ZSTD_decompressStream()
2445 …size_t const flushedSize = ZSTD_limitCopy(op, oend - op, zds->outBuff + zds->outStart, toFlushSize… in ZSTD_decompressStream()
2447 zds->outStart += flushedSize; in ZSTD_decompressStream()
2449 zds->stage = zdss_read; in ZSTD_decompressStream()
2450 if (zds->outStart + zds->blockSize > zds->outBuffSize) in ZSTD_decompressStream()
2451 zds->outStart = zds->outEnd = 0; in ZSTD_decompressStream()
2467 size_t nextSrcSizeHint = ZSTD_nextSrcSizeToDecompress(zds->dctx); in ZSTD_decompressStream()
2469 if (zds->outEnd == zds->outStart) { /* output fully flushed */ in ZSTD_decompressStream()
2470 if (zds->hostageByte) { in ZSTD_decompressStream()
2472 zds->stage = zdss_read; in ZSTD_decompressStream()
2479 …if (!zds->hostageByte) { /* output not fully flushed; keep last byte as hostage; will be released … in ZSTD_decompressStream()
2481 zds->hostageByte = 1; in ZSTD_decompressStream()
2485 …nextSrcSizeHint += ZSTD_blockHeaderSize * (ZSTD_nextInputType(zds->dctx) == ZSTDnit_block); /* pre… in ZSTD_decompressStream()
2486 if (zds->inPos > nextSrcSizeHint) in ZSTD_decompressStream()
2488 nextSrcSizeHint -= zds->inPos; /* already loaded*/ in ZSTD_decompressStream()