From bf47272f3cb9fb8a60e734a70c7d1085adc64724 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 31 Jan 2007 10:34:13 +0000 Subject: [PATCH] simpify state and make code 2% faster reimar, dont hesitate to flame me for not sending patches and feel free to revert any or all of my changes to lzo.c if you dont like them Originally committed as revision 7778 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/lzo.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/libavcodec/lzo.c b/libavcodec/lzo.c index 5fd1f4c..d4c19aa 100644 --- a/libavcodec/lzo.c +++ b/libavcodec/lzo.c @@ -168,7 +168,7 @@ static inline void copy_backptr(LZOContext *c, int back, int cnt) { * LZO_INPUT_PADDING, out must provide LZO_OUTPUT_PADDING additional bytes */ int lzo1x_decode(void *out, int *outlen, void *in, int *inlen) { - enum {COPY, BACKPTR} state = COPY; + int state= 0; int x; LZOContext c; c.in = in; @@ -205,9 +205,7 @@ int lzo1x_decode(void *out, int *outlen, void *in, int *inlen) { break; } } - } else - switch (state) { - case COPY: + } else if(!state){ cnt = get_len(&c, x, 15); copy(&c, cnt + 3); x = GETB(c); @@ -219,15 +217,13 @@ int lzo1x_decode(void *out, int *outlen, void *in, int *inlen) { continue; cnt = 1; back = (1 << 11) + (GETB(c) << 2) + (x >> 2) + 1; - break; - case BACKPTR: + } else { cnt = 0; back = (GETB(c) << 2) + (x >> 2) + 1; - break; } copy_backptr(&c, back, cnt + 2); + state= cnt = x & 3; - state = cnt ? BACKPTR : COPY; if (cnt) copy(&c, cnt); x = GETB(c); -- 2.7.4