Lines Matching refs:zds
2193 ZSTD_DStream *zds; in ZSTD_createDStream_advanced() local
2198 zds = (ZSTD_DStream *)ZSTD_malloc(sizeof(ZSTD_DStream), customMem); in ZSTD_createDStream_advanced()
2199 if (zds == NULL) in ZSTD_createDStream_advanced()
2201 memset(zds, 0, sizeof(ZSTD_DStream)); in ZSTD_createDStream_advanced()
2202 memcpy(&zds->customMem, &customMem, sizeof(ZSTD_customMem)); in ZSTD_createDStream_advanced()
2203 zds->dctx = ZSTD_createDCtx_advanced(customMem); in ZSTD_createDStream_advanced()
2204 if (zds->dctx == NULL) { in ZSTD_createDStream_advanced()
2205 ZSTD_freeDStream(zds); in ZSTD_createDStream_advanced()
2208 zds->stage = zdss_init; in ZSTD_createDStream_advanced()
2209 zds->maxWindowSize = ZSTD_MAXWINDOWSIZE_DEFAULT; in ZSTD_createDStream_advanced()
2210 return zds; in ZSTD_createDStream_advanced()
2216 ZSTD_DStream *zds = ZSTD_createDStream_advanced(stackMem); in ZSTD_initDStream() local
2217 if (!zds) { in ZSTD_initDStream()
2221 zds->maxWindowSize = maxWindowSize; in ZSTD_initDStream()
2222 zds->stage = zdss_loadHeader; in ZSTD_initDStream()
2223 zds->lhSize = zds->inPos = zds->outStart = zds->outEnd = 0; in ZSTD_initDStream()
2224 ZSTD_freeDDict(zds->ddictLocal); in ZSTD_initDStream()
2225 zds->ddictLocal = NULL; in ZSTD_initDStream()
2226 zds->ddict = zds->ddictLocal; in ZSTD_initDStream()
2227 zds->legacyVersion = 0; in ZSTD_initDStream()
2228 zds->hostageByte = 0; in ZSTD_initDStream()
2231 size_t const blockSize = MIN(zds->maxWindowSize, ZSTD_BLOCKSIZE_ABSOLUTEMAX); in ZSTD_initDStream()
2232 size_t const neededOutSize = zds->maxWindowSize + blockSize + WILDCOPY_OVERLENGTH * 2; in ZSTD_initDStream()
2234 zds->inBuff = (char *)ZSTD_malloc(blockSize, zds->customMem); in ZSTD_initDStream()
2235 zds->inBuffSize = blockSize; in ZSTD_initDStream()
2236 zds->outBuff = (char *)ZSTD_malloc(neededOutSize, zds->customMem); in ZSTD_initDStream()
2237 zds->outBuffSize = neededOutSize; in ZSTD_initDStream()
2238 if (zds->inBuff == NULL || zds->outBuff == NULL) { in ZSTD_initDStream()
2239 ZSTD_freeDStream(zds); in ZSTD_initDStream()
2243 return zds; in ZSTD_initDStream()
2248 ZSTD_DStream *zds = ZSTD_initDStream(maxWindowSize, workspace, workspaceSize); in ZSTD_initDStream_usingDDict() local
2249 if (zds) { in ZSTD_initDStream_usingDDict()
2250 zds->ddict = ddict; in ZSTD_initDStream_usingDDict()
2252 return zds; in ZSTD_initDStream_usingDDict()
2255 size_t ZSTD_freeDStream(ZSTD_DStream *zds) in ZSTD_freeDStream() argument
2257 if (zds == NULL) in ZSTD_freeDStream()
2260 ZSTD_customMem const cMem = zds->customMem; in ZSTD_freeDStream()
2261 ZSTD_freeDCtx(zds->dctx); in ZSTD_freeDStream()
2262 zds->dctx = NULL; in ZSTD_freeDStream()
2263 ZSTD_freeDDict(zds->ddictLocal); in ZSTD_freeDStream()
2264 zds->ddictLocal = NULL; in ZSTD_freeDStream()
2265 ZSTD_free(zds->inBuff, cMem); in ZSTD_freeDStream()
2266 zds->inBuff = NULL; in ZSTD_freeDStream()
2267 ZSTD_free(zds->outBuff, cMem); in ZSTD_freeDStream()
2268 zds->outBuff = NULL; in ZSTD_freeDStream()
2269 ZSTD_free(zds, cMem); in ZSTD_freeDStream()
2279 size_t ZSTD_resetDStream(ZSTD_DStream *zds) in ZSTD_resetDStream() argument
2281 zds->stage = zdss_loadHeader; in ZSTD_resetDStream()
2282 zds->lhSize = zds->inPos = zds->outStart = zds->outEnd = 0; in ZSTD_resetDStream()
2283 zds->legacyVersion = 0; in ZSTD_resetDStream()
2284 zds->hostageByte = 0; in ZSTD_resetDStream()
2297 size_t ZSTD_decompressStream(ZSTD_DStream *zds, ZSTD_outBuffer *output, ZSTD_inBuffer *input) in ZSTD_decompressStream() argument
2308 switch (zds->stage) { in ZSTD_decompressStream()
2310 ZSTD_resetDStream(zds); /* transparent reset on starting decoding a new frame */ in ZSTD_decompressStream()
2314 size_t const hSize = ZSTD_getFrameParams(&zds->fParams, zds->headerBuffer, zds->lhSize); in ZSTD_decompressStream()
2318 size_t const toLoad = hSize - zds->lhSize; /* if hSize!=0, hSize > zds->lhSize */ in ZSTD_decompressStream()
2320 memcpy(zds->headerBuffer + zds->lhSize, ip, iend - ip); in ZSTD_decompressStream()
2321 zds->lhSize += iend - ip; in ZSTD_decompressStream()
2323 return (MAX(ZSTD_frameHeaderSize_min, hSize) - zds->lhSize) + in ZSTD_decompressStream()
2326 memcpy(zds->headerBuffer + zds->lhSize, ip, toLoad); in ZSTD_decompressStream()
2327 zds->lhSize = hSize; in ZSTD_decompressStream()
2333 if (zds->fParams.frameContentSize && zds->fParams.windowSize /* skippable frame if == 0 */ in ZSTD_decompressStream()
2334 && (U64)(size_t)(oend - op) >= zds->fParams.frameContentSize) { in ZSTD_decompressStream()
2337 …t const decompressedSize = ZSTD_decompress_usingDDict(zds->dctx, op, oend - op, istart, cSize, zds… in ZSTD_decompressStream()
2342 zds->dctx->expected = 0; in ZSTD_decompressStream()
2343 zds->stage = zdss_init; in ZSTD_decompressStream()
2350 ZSTD_refDDict(zds->dctx, zds->ddict); in ZSTD_decompressStream()
2352 …size_t const h1Size = ZSTD_nextSrcSizeToDecompress(zds->dctx); /* == ZSTD_frameHeaderSize_prefix */ in ZSTD_decompressStream()
2353 CHECK_F(ZSTD_decompressContinue(zds->dctx, NULL, 0, zds->headerBuffer, h1Size)); in ZSTD_decompressStream()
2355 size_t const h2Size = ZSTD_nextSrcSizeToDecompress(zds->dctx); in ZSTD_decompressStream()
2356 CHECK_F(ZSTD_decompressContinue(zds->dctx, NULL, 0, zds->headerBuffer + h1Size, h2Size)); in ZSTD_decompressStream()
2360 zds->fParams.windowSize = MAX(zds->fParams.windowSize, 1U << ZSTD_WINDOWLOG_ABSOLUTEMIN); in ZSTD_decompressStream()
2361 if (zds->fParams.windowSize > zds->maxWindowSize) in ZSTD_decompressStream()
2366 size_t const blockSize = MIN(zds->maxWindowSize, ZSTD_BLOCKSIZE_ABSOLUTEMAX); in ZSTD_decompressStream()
2367 size_t const neededOutSize = zds->maxWindowSize + blockSize + WILDCOPY_OVERLENGTH * 2; in ZSTD_decompressStream()
2368 if (zds->inBuffSize < blockSize) { in ZSTD_decompressStream()
2371 if (zds->outBuffSize < neededOutSize) { in ZSTD_decompressStream()
2374 zds->blockSize = blockSize; in ZSTD_decompressStream()
2376 zds->stage = zdss_read; in ZSTD_decompressStream()
2381 size_t const neededInSize = ZSTD_nextSrcSizeToDecompress(zds->dctx); in ZSTD_decompressStream()
2383 zds->stage = zdss_init; in ZSTD_decompressStream()
2388 const int isSkipFrame = ZSTD_isSkipFrame(zds->dctx); in ZSTD_decompressStream()
2389 size_t const decodedSize = ZSTD_decompressContinue(zds->dctx, zds->outBuff + zds->outStart, in ZSTD_decompressStream()
2390 (isSkipFrame ? 0 : zds->outBuffSize - zds->outStart), ip, neededInSize); in ZSTD_decompressStream()
2396 zds->outEnd = zds->outStart + decodedSize; in ZSTD_decompressStream()
2397 zds->stage = zdss_flush; in ZSTD_decompressStream()
2404 zds->stage = zdss_load; in ZSTD_decompressStream()
2409 size_t const neededInSize = ZSTD_nextSrcSizeToDecompress(zds->dctx); in ZSTD_decompressStream()
2410 …size_t const toLoad = neededInSize - zds->inPos; /* should always be <= remaining space within inB… in ZSTD_decompressStream()
2412 if (toLoad > zds->inBuffSize - zds->inPos) in ZSTD_decompressStream()
2414 loadedSize = ZSTD_limitCopy(zds->inBuff + zds->inPos, toLoad, ip, iend - ip); in ZSTD_decompressStream()
2416 zds->inPos += loadedSize; in ZSTD_decompressStream()
2424 const int isSkipFrame = ZSTD_isSkipFrame(zds->dctx); in ZSTD_decompressStream()
2425 … const decodedSize = ZSTD_decompressContinue(zds->dctx, zds->outBuff + zds->outStart, zds->outBuff… in ZSTD_decompressStream()
2426 zds->inBuff, neededInSize); in ZSTD_decompressStream()
2429 zds->inPos = 0; /* input is consumed */ in ZSTD_decompressStream()
2431 zds->stage = zdss_read; in ZSTD_decompressStream()
2434 zds->outEnd = zds->outStart + decodedSize; in ZSTD_decompressStream()
2435 zds->stage = zdss_flush; in ZSTD_decompressStream()
2441 size_t const toFlushSize = zds->outEnd - zds->outStart; in ZSTD_decompressStream()
2442 …size_t const flushedSize = ZSTD_limitCopy(op, oend - op, zds->outBuff + zds->outStart, toFlushSize… in ZSTD_decompressStream()
2444 zds->outStart += flushedSize; in ZSTD_decompressStream()
2446 zds->stage = zdss_read; in ZSTD_decompressStream()
2447 if (zds->outStart + zds->blockSize > zds->outBuffSize) in ZSTD_decompressStream()
2448 zds->outStart = zds->outEnd = 0; in ZSTD_decompressStream()
2464 size_t nextSrcSizeHint = ZSTD_nextSrcSizeToDecompress(zds->dctx); in ZSTD_decompressStream()
2466 if (zds->outEnd == zds->outStart) { /* output fully flushed */ in ZSTD_decompressStream()
2467 if (zds->hostageByte) { in ZSTD_decompressStream()
2469 zds->stage = zdss_read; in ZSTD_decompressStream()
2476 …if (!zds->hostageByte) { /* output not fully flushed; keep last byte as hostage; will be released … in ZSTD_decompressStream()
2478 zds->hostageByte = 1; in ZSTD_decompressStream()
2482 …nextSrcSizeHint += ZSTD_blockHeaderSize * (ZSTD_nextInputType(zds->dctx) == ZSTDnit_block); /* pre… in ZSTD_decompressStream()
2483 if (zds->inPos > nextSrcSizeHint) in ZSTD_decompressStream()
2485 nextSrcSizeHint -= zds->inPos; /* already loaded*/ in ZSTD_decompressStream()