函数逻辑报告 |
Source Code:lib\lz4\lz4_compress.c |
Create Date:2022-07-27 07:58:09 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:-******************************* *_destSize() variant
函数原型:static int LZ4_compress_destSize_generic(LZ4_stream_t_internal *const ctx, const char *const src, char *const dst, int *const srcSizePtr, const int targetDstSize, const tableType_t tableType)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| LZ4_stream_t_internal *const | ctx | |
| const char *const | src | |
| char *const | dst | |
| int *const | srcSizePtr | |
| const int | targetDstSize | |
| const tableType_t | tableType |
| 534 | iend等于ip加srcSizePtr |
| 536 | matchlimit等于iend减LASTLITERALS |
| 539 | oend等于op加targetDstSize |
| 540 | oMaxLit等于op加targetDstSize减2减8减1 |
| 542 | oMaxMatch等于op加targetDstSize减LASTLITERALS加1 |
| 550 | 如果targetDstSize小于1则返回:0 |
| 553 | 如果((U32) * srcSizePtr > 2 113 929 216 bytes )则返回:0 |
| 556 | 如果tableType恒等于byU16且srcSizePtr大于等于LZ4_64Klimit则返回:0 |
| 559 | 如果srcSizePtr小于LZ4_minLength则转到:_last_literals |
| 563 | srcSizePtr等于0 |
| 564 | LZ4_putPosition(ip, hashTable, tableType, base) |
| 565 | ip自加 |
| 565 | forwardH等于LZ4_hashPosition(ip, tableType) |
| 568 | 循环 |
| 575 | step等于1 |
| 578 | 循环 |
| 585 | 如果此条件成立可能性小(为编译器优化)(forwardIp > mflimit)则转到:_last_literals |
| 596 | 当如果tableType恒等于byU16则0否则match加MAX_DISTANCE小于ip或LZ4_read32(match)不等于LZ4_read32(ip)循环 |
| 635 | _next_match : |
| 637 | LZ4_writeLE16(op, (U16)(ip - match)) |
| 637 | op加等于2 |
| 641 | matchLength等于LZ4_count(ip + -************************************* Constants, match + -************************************* Constants, matchlimit) |
| 644 | 如果op加matchLength加240的和除255大于oMaxMatch则 |
| 646 | matchLength等于15减1加oMaxMatch减op的差乘255 |
| 650 | 如果matchLength大于等于ML_MASK则 |
| 652 | matchLength减等于ML_MASK |
| 653 | 当matchLength大于等于255循环 |
| 654 | matchLength减等于255 |
| 655 | op自加等于255 |
| 657 | op自加等于matchLength |
| 658 | 否则token加等于matchLength |
| 671 | LZ4_putPosition(ip - 2, hashTable, tableType, base) |
| 675 | LZ4_putPosition(ip, hashTable, tableType, base) |
| 677 | 如果match加MAX_DISTANCE大于等于ip且LZ4_read32(match)恒等于LZ4_read32(ip)则 |
| 684 | forwardH等于LZ4_hashPosition(++ip, tableType) |
| 687 | _last_literals : |
| 690 | lastRunSize等于iend减anchor |
| 692 | 如果op加1加lastRunSize加240的和除255加lastRunSize大于oend则 |
| 696 | lastRunSize等于oend减op减1 |
| 697 | lastRunSize减等于lastRunSize加240的和除255 |
| 699 | ip等于anchor加lastRunSize |
| 701 | 如果lastRunSize大于等于RUN_MASK则 |
| 705 | 以accumulator大于等于255循环op自加等于255 |
| 707 | op自加等于accumulator |
| 708 | 否则 |
| 709 | op自加等于lastRunSize左移ML_BITS位 |
| 711 | 内存复制(op, anchor, lastRunSize) |
| 712 | op加等于lastRunSize |
| 716 | srcSizePtr等于ip减src |
| 名称 | 描述 |
|---|---|
| LZ4_compress_destSize_extState |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |