函数逻辑报告 |
Source Code:lib\zstd\compress.c |
Create Date:2022-07-27 08:01:50 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:ZSTD_compressBlock_lazy_generic
函数原型:void ZSTD_compressBlock_lazy_generic(ZSTD_CCtx *ctx, const void *src, size_t srcSize, const U32 searchMethod, const U32 depth)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
ZSTD_CCtx * | ctx | |
const void * | src | |
size_t | srcSize | |
const U32 | searchMethod | |
const U32 | depth |
1899 | seqStorePtr等于seqStore的地址 |
1907 | maxSearches等于1左移searchLog位 |
1908 | mls等于searchLength |
1910 | typedef size_t( * searchMax_f)(ZSTD_CCtx * zc, const BYTE * ip, const BYTE * iLimit, size_t * offsetPtr, U32 maxNbAttempts, U32 matchLengthSearch) |
1912 | offset_1等于rep[0], offset_2等于rep[1], savedOffset等于0 |
1916 | nextToUpdate3等于nextToUpdate |
1919 | 如果offset_2大于maxRep则savedOffset等于offset_2, offset_2等于0 |
1921 | 如果offset_1大于maxRep则savedOffset等于offset_1, offset_1等于0 |
1927 | matchLength等于0 |
1928 | offset等于0 |
1932 | 如果offset_1大于0按位与ZSTD_read32(ip + 1)恒等于ZSTD_read32(ip + 1 - offset_1)则 |
1934 | matchLength等于ZSTD_count(ip + 1 + EQUAL_READ32, ip + 1 + EQUAL_READ32 - offset_1, iend)加EQUAL_READ32 |
1935 | 如果depth恒等于0则转到:_storeSequence |
1941 | offsetFound等于99999999 |
1942 | ml2等于searchMax(ctx, ip, iend, & offsetFound, maxSearches, mls) |
1943 | 如果ml2大于matchLength则matchLength等于ml2, start等于ip, offset等于offsetFound |
1947 | 如果matchLength小于EQUAL_READ32则 |
1948 | ip加等于ip减anchor右移control skip over incompressible data 位的值加1 |
1949 | 继续下一循环 |
1955 | ip自加 |
1956 | 如果offset且offset_1大于0按位与ZSTD_read32(ip)恒等于ZSTD_read32(ip - offset_1)则 |
1957 | mlRep等于ZSTD_count(ip + EQUAL_READ32, ip + EQUAL_READ32 - offset_1, iend)加EQUAL_READ32 |
1959 | gain1等于matchLength乘3减====== common function ======加1 |
1960 | 如果mlRep大于等于EQUAL_READ32且gain2大于gain1则matchLength等于mlRep, offset等于0, start等于ip |
1964 | offset2等于99999999 |
1966 | gain2等于ml2乘4减====== common function ====== |
1967 | gain1等于matchLength乘4减====== common function ======加4 |
1968 | 如果ml2大于等于EQUAL_READ32且gain2大于gain1则 |
1976 | ip自加 |
1977 | 如果offset且offset_1大于0按位与ZSTD_read32(ip)恒等于ZSTD_read32(ip - offset_1)则 |
1978 | ml2等于ZSTD_count(ip + EQUAL_READ32, ip + EQUAL_READ32 - offset_1, iend)加EQUAL_READ32 |
1980 | gain1等于matchLength乘4减====== common function ======加1 |
1981 | 如果ml2大于等于EQUAL_READ32且gain2大于gain1则matchLength等于ml2, offset等于0, start等于ip |
1985 | offset2等于99999999 |
1987 | gain2等于ml2乘4减====== common function ====== |
1988 | gain1等于matchLength乘4减====== common function ======加7 |
1989 | 如果ml2大于等于EQUAL_READ32且gain2大于gain1则 |
1995 | 退出 |
2004 | 如果offset则 |
2008 | start自减 |
2009 | matchLength自加 |
2012 | offset_1等于offset减ZSTD_REP_MOVE |
2016 | _storeSequence : |
2020 | anchor等于ip等于start加matchLength |
2024 | 当ip小于等于ilimit且offset_2大于0按位与ZSTD_read32(ip)恒等于ZSTD_read32(ip - offset_2)循环 |
2026 | matchLength等于ZSTD_count(ip + EQUAL_READ32, ip + EQUAL_READ32 - offset_2, iend)加EQUAL_READ32 |
2031 | ip加等于matchLength |
2033 | 继续下一循环 |
2038 | repToConfirm[0]等于如果offset_1则offset_1否则savedOffset |
2039 | repToConfirm[1]等于如果offset_2则offset_2否则savedOffset |
名称 | 描述 |
---|---|
ZSTD_compressBlock_btlazy2 | |
ZSTD_compressBlock_lazy2 | |
ZSTD_compressBlock_lazy | |
ZSTD_compressBlock_greedy |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |