MCPcopy Create free account
hub / github.com/TruthHun/BookStack / scan_tree

Function scan_tree

static/word2md/mammoth.browser.js:23106–23165  ·  view source on GitHub ↗
(s, tree, max_code)

Source from the content-addressed store, hash-verified

23104 * in the bit length tree.
23105 */
23106function scan_tree(s, tree, max_code)
23107// deflate_state *s;
23108// ct_data *tree; /* the tree to be scanned */
23109// int max_code; /* and its largest code of non zero frequency */
23110{
23111 var n; /* iterates over all tree elements */
23112 var prevlen = -1; /* last emitted length */
23113 var curlen; /* length of current code */
23114
23115 var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */
23116
23117 var count = 0; /* repeat count of the current code */
23118 var max_count = 7; /* max repeat count */
23119 var min_count = 4; /* min repeat count */
23120
23121 if (nextlen === 0) {
23122 max_count = 138;
23123 min_count = 3;
23124 }
23125 tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */
23126
23127 for (n = 0; n <= max_code; n++) {
23128 curlen = nextlen;
23129 nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;
23130
23131 if (++count < max_count && curlen === nextlen) {
23132 continue;
23133
23134 } else if (count < min_count) {
23135 s.bl_tree[curlen * 2]/*.Freq*/ += count;
23136
23137 } else if (curlen !== 0) {
23138
23139 if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }
23140 s.bl_tree[REP_3_6 * 2]/*.Freq*/++;
23141
23142 } else if (count <= 10) {
23143 s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;
23144
23145 } else {
23146 s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;
23147 }
23148
23149 count = 0;
23150 prevlen = curlen;
23151
23152 if (nextlen === 0) {
23153 max_count = 138;
23154 min_count = 3;
23155
23156 } else if (curlen === nextlen) {
23157 max_count = 6;
23158 min_count = 3;
23159
23160 } else {
23161 max_count = 7;
23162 min_count = 4;
23163 }

Callers 1

build_bl_treeFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected