函数逻辑报告 |
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()