函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |