|
@@ -2102,12 +2102,12 @@ stbi_inline static int stbi__extend_receive(stbi__jpeg *j, int n)
|
|
|
int sgn;
|
|
|
if (j->code_bits < n) stbi__grow_buffer_unsafe(j);
|
|
|
|
|
|
- sgn = (stbi__int32)j->code_buffer >> 31; // sign bit is always in MSB
|
|
|
+ sgn = j->code_buffer >> 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative)
|
|
|
k = stbi_lrot(j->code_buffer, n);
|
|
|
j->code_buffer = k & ~stbi__bmask[n];
|
|
|
k &= stbi__bmask[n];
|
|
|
j->code_bits -= n;
|
|
|
- return k + (stbi__jbias[n] & ~sgn);
|
|
|
+ return k + (stbi__jbias[n] & (sgn - 1));
|
|
|
}
|
|
|
|
|
|
// get some unsigned bits
|