From 4aa485a3f62c977a85165e429fb57682d69cf7c2 Mon Sep 17 00:00:00 2001
From: Vitor Sessak <vitor1001@gmail.com>
Date: Thu, 15 May 2008 18:36:12 +0000
Subject: [PATCH] Do not copy tables to a context var, use them directly

Originally committed as revision 13164 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/ra144.c | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

diff --git a/libavcodec/ra144.c b/libavcodec/ra144.c
index 5303abe5504..c63a71b870b 100644
--- a/libavcodec/ra144.c
+++ b/libavcodec/ra144.c
@@ -48,9 +48,6 @@ typedef struct {
     unsigned short int buffer_2[148];
 
     unsigned short *sptr;
-
-    signed short wavtable1[2304];
-    unsigned short wavtable2[2304];
 } Real144_internal;
 
 static int ra144_decode_init(AVCodecContext * avctx)
@@ -62,9 +59,6 @@ static int ra144_decode_init(AVCodecContext * avctx)
     glob->swapbuf1alt = glob->swapbuffers[2];
     glob->swapbuf2alt = glob->swapbuffers[3];
 
-    memcpy(glob->wavtable1, wavtable1, sizeof(wavtable1));
-    memcpy(glob->wavtable2, wavtable2, sizeof(wavtable2));
-
     return 0;
 }
 
@@ -183,11 +177,11 @@ static int irms(short *data, int factor)
 static void add_wav(Real144_internal *glob, int n, int f, int m1, int m2,
                     int m3, short *s1, short *s2, short *s3, short *dest)
 {
-    int a, b, c;
-    short *ptr, *ptr2;
+    int a, b, c, i;
+    const short *ptr, *ptr2;
 
-    ptr  = glob->wavtable1 + n * 9;
-    ptr2 = glob->wavtable2 + n * 9;
+    ptr  = wavtable1 + n * 9;
+    ptr2 = wavtable2 + n * 9;
 
     if (f != 0)
         a = ((*ptr) * m1) >> ((*ptr2) + 1);
@@ -200,14 +194,13 @@ static void add_wav(Real144_internal *glob, int n, int f, int m1, int m2,
     ptr++;
     ptr2++;
     c = ((*ptr) * m3) >> ((*ptr2) + 1);
-    ptr2 = (ptr = dest) + BLOCKSIZE;
 
     if (f != 0)
-        while (ptr < ptr2)
-            *(ptr++) = ((*(s1++)) * a + (*(s2++)) * b + (*(s3++)) * c) >> 12;
+        for (i=0; i < BLOCKSIZE; i++)
+            dest[i] = ((*(s1++)) * a + (*(s2++)) * b + (*(s3++)) * c) >> 12;
     else
-        while (ptr < ptr2)
-            *(ptr++) = ((*(s2++)) * b + (*(s3++)) * c) >> 12;
+        for (i=0; i < BLOCKSIZE; i++)
+            dest[i] = ((*(s2++)) * b + (*(s3++)) * c) >> 12;
 }
 
 
-- 
GitLab