函数逻辑报告 |
Source Code:lib\zstd\decompress.c |
Create Date:2022-07-27 08:05:17 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:! ZSTD_decompressFrame() :*@dctx must be properly initialized
函数原型:static size_t ZSTD_decompressFrame(ZSTD_DCtx *dctx, void *dst, size_t dstCapacity, const void **srcPtr, size_t *srcSizePtr)
返回类型:size_t
参数:
类型 | 参数 | 名称 |
---|---|---|
ZSTD_DCtx * | dctx | |
void * | dst | |
size_t | dstCapacity | |
const void ** | srcPtr | |
size_t * | srcSizePtr |
1570 | oend等于ostart加dstCapacity |
1572 | remainingSize等于srcSizePtr |
1575 | 如果remainingSize小于ZSTD_frameHeaderSize_min加ZSTD_blockHeaderSize则返回:-***************************************** Error codes handling(srcSize_wrong) |
1581 | 如果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.则返回:frameHeaderSize |
1583 | 如果remainingSize小于frameHeaderSize加ZSTD_blockHeaderSize则返回:-***************************************** Error codes handling(srcSize_wrong) |
1586 | ip加等于frameHeaderSize |
1587 | remainingSize减等于frameHeaderSize |
1591 | 当1循环 |
1594 | cBlockSize等于! ZSTD_getcBlockSize() :* Provides the size of compressed block from block header `src` |
1595 | 如果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 |
1598 | ip加等于ZSTD_blockHeaderSize |
1600 | 如果cBlockSize大于remainingSize则返回:-***************************************** Error codes handling(srcSize_wrong) |
1604 | 当:blockType恒等于bt_compressed |
1604 | decodedSize等于ZSTD_decompressBlock_internal(dctx, op, oend - op, ip, cBlockSize) |
1604 | 退出 |
1605 | decodedSize等于ZSTD_copyRawBlock(op, oend - op, ip, cBlockSize) |
1605 | 退出 |
1606 | decodedSize等于ZSTD_generateNxBytes(op, oend - op, * ip, origSize) |
1606 | 退出 |
1607 | 当:blockType恒等于bt_reserved |
1608 | 默认 |
1611 | 如果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 |
1613 | 如果checksumFlag则xxh64_update( & xxhState, op, decodedSize) |
1615 | op加等于decodedSize |
1616 | ip加等于cBlockSize |
1617 | remainingSize减等于cBlockSize |
1622 | 如果checksumFlag则 |
1623 | checkCalc等于xxh64_digest( & xxhState) |
1625 | 如果remainingSize小于4则返回:-***************************************** Error codes handling(checksum_wrong) |
1627 | checkRead等于ZSTD_readLE32(ip) |
1628 | 如果checkRead不等于checkCalc则返回:-***************************************** Error codes handling(checksum_wrong) |
1630 | ip加等于4 |
1631 | remainingSize减等于4 |
1636 | srcSizePtr等于remainingSize |
名称 | 描述 |
---|---|
ZSTD_decompressMultiFrame |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |