A shift by a negative amount has undefined behaviour. Even though
the result of this shift is never used, the shift itself could
cause an exception of some kind.
Originally committed as revision 21939 to svn://svn.ffmpeg.org/ffmpeg/trunk
#endif
/* if code matches the prefix, it is in the table */
n -= n_prefix;
+ if (n > 0) {
if(flags & INIT_VLC_LE)
code_prefix2= code & (n_prefix>=32 ? 0xffffffff : (1 << n_prefix)-1);
else
code_prefix2= code >> n;
- if (n > 0 && code_prefix2 == code_prefix) {
+ if (code_prefix2 == code_prefix) {
if (n <= table_nb_bits) {
/* no need to add another table */
j = (code << (table_nb_bits - n)) & (table_size - 1);
table[j][1] = -n1; //bits
}
}
+ }
}
/* second pass : fill auxillary tables recursively */