fix bug where gcc gets shifting wrong

This commit is contained in:
Josh Coalson
2001-05-16 19:28:12 +00:00
parent 183019474f
commit 5157f7c1c3

View File

@@ -277,7 +277,8 @@ bool FLAC__bitbuffer_write_raw_uint32(FLAC__BitBuffer *bb, uint32 val, unsigned
return true;
if(!bitbuffer_ensure_size_(bb, bits))
return false;
val &= (~(0xffffffffu << bits)); /* zero-out unused bits */
if(bits < 32) /* @@@ gcc seems to require this because the following line causes incorrect results when bits==32; investigate */
val &= (~(0xffffffff << bits)); /* zero-out unused bits */
bb->total_bits += bits;
while(bits > 0) {
n = 8 - bb->bits;