函数逻辑报告 |
Source Code:lib\zstd\zstd_opt.h |
Create Date:2022-07-27 08:02:42 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:ZSTD_compressBlock_opt_extDict_generic
函数原型:void ZSTD_compressBlock_opt_extDict_generic(ZSTD_CCtx *ctx, const void *src, size_t srcSize, const int ultra)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| ZSTD_CCtx * | ctx | |
| const void * | src | |
| size_t | srcSize | |
| const int | ultra |
| 702 | seqStorePtr等于seqStore的地址 |
| 709 | lowestIndex等于lowLimit |
| 711 | prefixStart等于base加dictLimit |
| 715 | maxSearches等于1U左移searchLog位 |
| 717 | mls等于searchLength |
| 718 | minMatch等于如果searchLength恒等于3则3否则4 |
| 721 | matches等于matchTable |
| 733 | ZSTD_rescaleFreqs(seqStorePtr, (constBYTE * )src, srcSize) |
| 734 | ip加等于ip恒等于prefixStart |
| 741 | memset(opt, 0, sizeof(ZSTD_optimal_t)) |
| 742 | last_pos等于0 |
| 753 | 如果repCur大于0且repCur小于等于curr且dictLimit减1减repIndex大于等于3按位与repIndex大于lowestIndex且 safe only for comparisons 恒等于 safe only for comparisons 则 |
| 780 | match_num等于ZSTD_BtGetAllMatches_selectMLS_extDict(ctx, ip, iend, maxSearches, mls, matches, minMatch) |
| 792 | mlen等于1 |
| 818 | ip自加 |
| 819 | 继续下一循环 |
| 826 | 如果mlen恒等于1则 |
| 829 | price等于price加ZSTD_getLiteralPrice(seqStorePtr, litlen, inr - litlen) |
| 830 | 否则price等于ZSTD_getLiteralPrice(seqStorePtr, litlen, anchor) |
| 832 | 否则 |
| 833 | litlen等于1 |
| 834 | price等于price加ZSTD_getLiteralPrice(seqStorePtr, litlen, inr - 1) |
| 847 | 如果off大于ZSTD_REP_MOVE_OPT则 |
| 851 | 否则 |
| 866 | 如果repCur大于0且repCur小于等于curr加cur且dictLimit减1减repIndex大于等于3按位与repIndex大于lowestIndex且 safe only for comparisons 恒等于 safe only for comparisons 则 |
| 871 | mlen等于ZSTD_count_2segments() :* can count match length with `ip` & `match` in 2 different segments.* convention : on reaching mEnd, match count continue starting from iStart加minMatch |
| 884 | 循环 |
| 905 | match_num等于ZSTD_BtGetAllMatches_selectMLS_extDict(ctx, inr, iend, maxSearches, mls, matches, minMatch) |
| 920 | 如果mlen恒等于1则 |
| 922 | 如果cur大于litlen则price等于price加ZSTD_getPrice(seqStorePtr, litlen, ip + cur - litlen, off - 1, mlen - MINMATCH, ultra) |
| 925 | 否则price等于ZSTD_getPrice(seqStorePtr, litlen, anchor, off - 1, mlen - MINMATCH, ultra) |
| 927 | 否则 |
| 928 | litlen等于0 |
| 929 | price等于price加ZSTD_getPrice(seqStorePtr, 0, NULL, off - 1, mlen - MINMATCH, ultra) |
| 935 | mlen自加 |
| 945 | _storeSequence : |
| 946 | mlen等于1 |
| 948 | 当1循环 |
| 966 | 如果mlen恒等于1则 |
| 975 | 如果offset大于ZSTD_REP_MOVE_OPT则 |
| 980 | 否则 |
| 981 | 如果offset不等于0则 |
| 993 | ZSTD_updatePrice(seqStorePtr, litLength, anchor, offset, mlen - MINMATCH) |
| 1002 | 以i小于umber of repcodes 循环repToConfirm[i]等于rep[i] |
| 1008 | lastLLSize等于iend减anchor |
| 1009 | 内存复制(lit, anchor, lastLLSize) |
| 1010 | lit加等于lastLLSize |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |