Lines Matching defs:code

9 * 1. Redistributions of source code must retain the above copyright
1890 int ret = (ARCHIVE_OK), sym, code, lzss_offset, length, i;
1972 if ((code = __archive_ppmd7_functions.Ppmd7_DecodeSymbol(
1980 switch(code)
1999 if ((code = __archive_ppmd7_functions.Ppmd7_DecodeSymbol(
2006 lzss_offset |= code << (i * 8);
2374 read_next_symbol(struct archive_read *a, struct huffman_code *code)
2382 if (!code->table)
2384 if (make_table(a, code) != (ARCHIVE_OK))
2392 if (!rar_br_read_ahead(a, br, code->tablesize)) {
2398 bits = rar_br_bits(br, code->tablesize);
2400 length = code->table[bits].length;
2401 value = code->table[bits].value;
2406 "Invalid prefix code in bitstream");
2410 if (length <= code->tablesize)
2418 rar_br_consume(br, code->tablesize);
2421 while (!(code->tree[node].branches[0] ==
2422 code->tree[node].branches[1]))
2433 if (code->tree[node].branches[bit] < 0)
2436 "Invalid prefix code in bitstream");
2439 node = code->tree[node].branches[bit];
2442 return code->tree[node].branches[0];
2446 create_code(struct archive_read *a, struct huffman_code *code,
2451 code->numentries = 0;
2452 code->numallocatedentries = 0;
2453 if (new_node(code) < 0) {
2458 code->numentries = 1;
2459 code->minlength = INT_MAX;
2460 code->maxlength = INT_MIN;
2467 if (add_value(a, code, j, codebits, i) != ARCHIVE_OK)
2481 add_value(struct archive_read *a, struct huffman_code *code, int value,
2487 free(code->table);
2488 code->table = NULL;
2490 if(length > code->maxlength)
2491 code->maxlength = length;
2492 if(length < code->minlength)
2493 code->minlength = length;
2496 * Dead code, repeatpos was is -1
2515 if (code->tree[lastnode].branches[0] ==
2516 code->tree[lastnode].branches[1])
2524 * Dead code, repeatpos was -1, bitpos >=0
2529 if (!(code->tree[lastnode].branches[bit] < 0))
2532 "Invalid repeating code");
2536 if ((repeatnode = new_node(code)) < 0) {
2541 if ((nextnode = new_node(code)) < 0) {
2548 code->tree[lastnode].branches[bit] = repeatnode;
2549 code->tree[repeatnode].branches[bit] = repeatnode;
2550 code->tree[repeatnode].branches[bit^1] = nextnode;
2559 if (code->tree[lastnode].branches[bit] < 0)
2561 if (new_node(code) < 0) {
2566 code->tree[lastnode].branches[bit] = code->numentries++;
2570 lastnode = code->tree[lastnode].branches[bit];
2574 if (!(code->tree[lastnode].branches[0] == -1
2575 && code->tree[lastnode].branches[1] == -2))
2583 code->tree[lastnode].branches[0] = value;
2584 code->tree[lastnode].branches[1] = value;
2590 new_node(struct huffman_code *code)
2593 if (code->numallocatedentries == code->numentries) {
2595 if (code->numentries > 0) {
2596 new_num_entries = code->numentries * 2;
2598 new_tree = realloc(code->tree, new_num_entries * sizeof(*code->tree));
2601 code->tree = (struct huffman_tree_node *)new_tree;
2602 code->numallocatedentries = new_num_entries;
2604 code->tree[code->numentries].branches[0] = -1;
2605 code->tree[code->numentries].branches[1] = -2;
2610 make_table(struct archive_read *a, struct huffman_code *code)
2612 if (code->maxlength < code->minlength || code->maxlength > 10)
2613 code->tablesize = 10;
2615 code->tablesize = code->maxlength;
2617 code->table =
2618 (struct huffman_table_entry *)calloc(1, sizeof(*code->table)
2619 * ((size_t)1 << code->tablesize));
2621 return make_table_recurse(a, code, 0, code->table, 0, code->tablesize);
2625 make_table_recurse(struct archive_read *a, struct huffman_code *code, int node,
2631 if (!code->tree)
2637 if (node < 0 || node >= code->numentries)
2646 if (code->tree[node].branches[0] ==
2647 code->tree[node].branches[1])
2652 table[i].value = code->tree[node].branches[0];
2656 * Dead code, node >= 0
2673 ret |= make_table_recurse(a, code, code->tree[node].branches[0], table,
2675 ret |= make_table_recurse(a, code, code->tree[node].branches[1],