]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - bitstream.c
bitstream: Replace check for impossible condition by assertion.
[paraslash.git] / bitstream.c
index 00970261805f1dfc7427a8123de110ecde932b03..492b407d235f7000e77c036e9ebf52412d5afc63 100644 (file)
@@ -58,8 +58,7 @@ static int build_table(struct vlc *vlc, int table_nb_bits, int nb_codes,
                const void *bits, const void *codes, int codes_size,
                uint32_t code_prefix, int n_prefix)
 {
-       int i, j, k, n, table_size, table_index, nb, n1, idx, code_prefix2,
-               symbol;
+       int i, j, k, n, table_size, table_index, nb, n1, idx;
        uint32_t code;
        VLC_TYPE(*table)[2];
 
@@ -76,27 +75,22 @@ static int build_table(struct vlc *vlc, int table_nb_bits, int nb_codes,
        /* map codes and compute auxiliary table sizes */
        for (i = 0; i < nb_codes; i++) {
                GET_DATA(n, bits, i, 1);
-               GET_DATA(code, codes, i, codes_size);
                /* we accept tables with holes */
+               n -= n_prefix;
                if (n <= 0)
                        continue;
-               symbol = i;
+               GET_DATA(code, codes, i, codes_size);
                /* if code matches the prefix, it is in the table */
-               n -= n_prefix;
-               code_prefix2 = code >> n;
-               if (n <= 0 || code_prefix2 != code_prefix)
+               if ((code >> n) != code_prefix)
                        continue;
                if (n <= table_nb_bits) {
                        /* no need to add another table */
                        j = (code << (table_nb_bits - n)) & (table_size - 1);
                        nb = 1 << (table_nb_bits - n);
                        for (k = 0; k < nb; k++) {
-                               if (table[j][1] /* bits */ != 0) {
-                                       PARA_EMERG_LOG("incorrect code\n");
-                                       exit(EXIT_FAILURE);
-                               }
+                               assert(table[j][1] == 0); /* incorrect code */
                                table[j][1] = n; /* bits */
-                               table[j][0] = symbol;
+                               table[j][0] = i;
                                j++;
                        }
                } else {