函数逻辑报告 |
Source Code:lib\zstd\decompress.c |
Create Date:2022-07-27 08:05:25 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称: : nb of bytes generated into `dst` (necessarily <= `dstCapacity)
函数原型:size_t ZSTD_decompressContinue(ZSTD_DCtx *dctx, void *dst, size_t dstCapacity, const void *src, size_t srcSize)
返回类型:size_t
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| ZSTD_DCtx * | dctx | |
| void * | dst | |
| size_t | dstCapacity | |
| const void * | src | |
| size_t | srcSize |
| 1746 | 如果srcSize不等于expected则返回:-***************************************** Error codes handling(srcSize_wrong) |
| 1748 | 如果dstCapacity则ZSTD_checkContinuity(dctx, dst) |
| 1752 | 当:stage恒等于ZSTDds_getFrameHeaderSize |
| 1753 | 如果srcSize不等于ZSTD_frameHeaderSize_prefix则返回:-***************************************** Error codes handling(srcSize_wrong) |
| 1755 | 如果ZSTD_readLE32(src)按位与0xFFFFFFF0U的值恒等于ZSTD_MAGIC_SKIPPABLE_START则 |
| 1759 | 返回:0 |
| 1762 | 如果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.则返回:headerSize |
| 1765 | 如果headerSize大于ZSTD_frameHeaderSize_prefix则 |
| 1768 | 返回:0 |
| 1770 | expected等于0 |
| 1773 | 当:stage恒等于ZSTDds_decodeFrameHeader |
| 1774 | 内存复制(headerBuffer + ZSTD_frameHeaderSize_prefix, src, expected) |
| 1776 | expected等于ZSTD_blockHeaderSize |
| 1778 | 返回:0 |
| 1780 | 当:stage恒等于ZSTDds_decodeBlockHeader |
| 1782 | cBlockSize等于! ZSTD_getcBlockSize() :* Provides the size of compressed block from block header `src` |
| 1783 | 如果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.则返回:cBlockSize |
| 1785 | expected等于cBlockSize |
| 1788 | 如果cBlockSize则 |
| 1790 | 返回:0 |
| 1793 | 如果lastBlock则 |
| 1801 | 否则 |
| 1802 | expected等于3 |
| 1805 | 返回:0 |
| 1807 | 当:stage恒等于ZSTDds_decompressLastBlock |
| 1808 | 当:stage恒等于ZSTDds_decompressBlock |
| 1811 | 当:bType恒等于bt_compressed |
| 1811 | rSize等于ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize) |
| 1811 | 退出 |
| 1812 | rSize等于ZSTD_copyRawBlock(dst, dstCapacity, src, srcSize) |
| 1812 | 退出 |
| 1813 | rSize等于ZSTD_setRleBlock(dst, dstCapacity, src, srcSize, rleSize) |
| 1813 | 退出 |
| 1814 | 当:bType恒等于bt_reserved |
| 1815 | 默认 |
| 1817 | 如果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.则返回:rSize |
| 1819 | 如果checksumFlag则xxh64_update( & xxhState, dst, rSize) |
| 1822 | 如果stage恒等于ZSTDds_decompressLastBlock则 |
| 1830 | 否则 |
| 1832 | expected等于ZSTD_blockHeaderSize |
| 1833 | previousDstEnd等于dst加rSize |
| 1835 | 返回:rSize |
| 1837 | 当:stage恒等于ZSTDds_checkChecksum |
| 1838 | h32等于xxh64_digest( & xxhState) |
| 1839 | check32等于ZSTD_readLE32(src) |
| 1840 | 如果check32不等于h32则返回:-***************************************** Error codes handling(checksum_wrong) |
| 1842 | expected等于0 |
| 1844 | 返回:0 |
| 1846 | 当:stage恒等于ZSTDds_decodeSkippableHeader |
| 1847 | 内存复制(headerBuffer + ZSTD_frameHeaderSize_prefix, src, expected) |
| 1848 | expected等于ZSTD_readLE32(headerBuffer + 4) |
| 1849 | stage等于ZSTDds_skipFrame |
| 1850 | 返回:0 |
| 1852 | 当:stage恒等于ZSTDds_skipFrame |
| 1857 | 默认 |
| 名称 | 描述 |
|---|---|
| ZSTD_decompressStream |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |
摘要:ZSTD_decompressContinue() :* or an error code, which can be tested using ZSTD_isError()