函数逻辑报告 |
Source Code:lib\zstd\decompress.c |
Create Date:2022-07-27 08:05:47 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:ZSTD_decompressStream
函数原型:size_t ZSTD_decompressStream(ZSTD_DStream *zds, ZSTD_outBuffer *output, ZSTD_inBuffer *input)
返回类型:size_t
参数:
类型 | 参数 | 名称 |
---|---|---|
ZSTD_DStream * | zds | |
ZSTD_outBuffer * | output | |
ZSTD_inBuffer * | input |
2306 | someMoreWork等于1 |
2308 | 当someMoreWork循环 |
2311 | ZSTD_resetDStream(zds) |
2314 | 当:stage恒等于zdss_loadHeader |
2316 | 如果ZSTD_isError() - tells if a size_t function result is an error code*@code: The function result to check for error.* Return: Non-zero iff the code is an error.则返回:hSize |
2318 | 如果hSize不等于0则 |
2334 | 如果frameContentSize且windowSize且oend减op大于等于frameContentSize则 |
2338 | decompressedSize等于! ZSTD_decompress_usingDDict() :* Decompression using a pre-digested Dictionary* Use dictionary without significant overhead. |
2339 | 如果ZSTD_isError() - tells if a size_t function result is an error code*@code: The function result to check for error.* Return: Non-zero iff the code is an error.则返回:decompressedSize |
2342 | op加等于decompressedSize |
2343 | expected等于0 |
2345 | someMoreWork等于0 |
2346 | 退出 |
2351 | ZSTD_refDDict(dctx, ddict) |
2361 | windowSize等于MAX(windowSize, 1U << ZSTD_WINDOWLOG_ABSOLUTEMIN) |
2367 | blockSize等于-************************************** shared macros(maxWindowSize, Define for static allocation ) |
2368 | neededOutSize等于maxWindowSize加blockSize加! ZSTD_wildcopy() :* custom version of memcpy(), can copy up to 7 bytes too many (8 bytes if length==0) 乘2 |
2369 | 如果inBuffSize小于blockSize则 |
2372 | 如果outBuffSize小于neededOutSize则 |
2382 | neededInSize等于-*************************************** Advanced Streaming Decompression API* Bufferless and synchronous |
2383 | 如果neededInSize恒等于0则 |
2388 | 如果iend减ip大于等于neededInSize则 |
2389 | isSkipFrame等于ZSTD_isSkipFrame(dctx) |
2392 | 如果ZSTD_isError() - tells if a size_t function result is an error code*@code: The function result to check for error.* Return: Non-zero iff the code is an error.则返回:decodedSize |
2394 | ip加等于neededInSize |
2395 | 如果非decodedSize且非isSkipFrame则退出 |
2397 | outEnd等于outStart加decodedSize |
2398 | stage等于zdss_flush |
2399 | 退出 |
2402 | someMoreWork等于0 |
2403 | 退出 |
2411 | neededInSize等于-*************************************** Advanced Streaming Decompression API* Bufferless and synchronous |
2412 | toLoad等于neededInSize减inPos |
2414 | 如果toLoad大于inBuffSize减inPos则返回:-***************************************** Error codes handling(corruption_detected) |
2417 | ip加等于loadedSize |
2418 | inPos加等于loadedSize |
2419 | 如果loadedSize小于toLoad则 |
2420 | someMoreWork等于0 |
2421 | 退出 |
2426 | isSkipFrame等于ZSTD_isSkipFrame(dctx) |
2429 | 如果ZSTD_isError() - tells if a size_t function result is an error code*@code: The function result to check for error.* Return: Non-zero iff the code is an error.则返回:decodedSize |
2431 | inPos等于0 |
2432 | 如果非decodedSize且非isSkipFrame则 |
2436 | outEnd等于outStart加decodedSize |
2437 | stage等于zdss_flush |
2443 | 当:stage恒等于zdss_flush |
2444 | toFlushSize等于outEnd减outStart |
2446 | op加等于flushedSize |
2447 | outStart加等于flushedSize |
2448 | 如果flushedSize恒等于toFlushSize则 |
2455 | someMoreWork等于0 |
2456 | 退出 |
2458 | 默认 |
2467 | nextSrcSizeHint等于-*************************************** Advanced Streaming Decompression API* Bufferless and synchronous |
2468 | 如果非nextSrcSizeHint则 |
2486 | 如果inPos大于nextSrcSizeHint则返回:-***************************************** Error codes handling(GENERIC) |
2488 | nextSrcSizeHint减等于inPos |
2489 | 返回:nextSrcSizeHint |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |