OSDN Git Service

dirac_vlc: prevent shifting a 0 by 64 bits when zeroing residue
authorRostislav Pehlivanov <atomnuker@gmail.com>
Thu, 14 Jul 2016 00:26:51 +0000 (01:26 +0100)
committerRostislav Pehlivanov <atomnuker@gmail.com>
Thu, 14 Jul 2016 00:29:34 +0000 (01:29 +0100)
Adding a check for bits == 0 would still make Coverity misdetect this,
so just revert to the normal way of setting the residue to 0.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
libavcodec/dirac_vlc.c

index d874278..336d22a 100644 (file)
@@ -65,7 +65,7 @@ int ff_dirac_golomb_read_32bit(DiracGolombLUT *lut_ctx, const uint8_t *buf,
                 coeff |= (res >> (RSIZE_BITS - 2*i - 2)) & 1;
             }
             dst[c_idx++] = l->sign * (coeff - 1);
-            SET_RESIDUE(res, 0, 0);
+            res_bits = res = 0;
         }
 
         memcpy(&dst[c_idx], l->ready, LUT_BITS*sizeof(int32_t));
@@ -104,7 +104,7 @@ int ff_dirac_golomb_read_16bit(DiracGolombLUT *lut_ctx, const uint8_t *buf,
                 coeff |= (res >> (RSIZE_BITS - 2*i - 2)) & 1;
             }
             dst[c_idx++] = l->sign * (coeff - 1);
-            SET_RESIDUE(res, 0, 0);
+            res_bits = res = 0;
         }
 
         for (i = 0; i < LUT_BITS; i++)