OSDN Git Service

Use an intermediate variable for overflow testing
authorVitor Sessak <vitor1001@gmail.com>
Sat, 24 May 2008 16:38:48 +0000 (16:38 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Sat, 24 May 2008 16:38:48 +0000 (16:38 +0000)
Originally committed as revision 13283 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/ra144.c

index 5cfe94f..d4dc477 100644 (file)
@@ -154,19 +154,22 @@ static void final(const short *i1, const short *i2,
 
     for (i=0; i<len; i++) {
         int sum = 0;
+        int new_val;
 
         for(x=0; x<10; x++)
             sum += i1[9-x] * ptr[x];
 
         sum >>= 12;
 
-        if (ptr[10] - sum < -32768 || ptr[10] - sum > 32767) {
+        new_val = ptr[10] - sum;
+
+        if (new_val < -32768 || new_val > 32767) {
             memset(out, 0, len * 2);
             memset(statbuf, 0, 20);
             return;
         }
 
-        ptr[10] -= sum;
+        ptr[10] = new_val;
         ptr++;
     }