From f63f689e101225d2a35f614c8843e7bdcdadee78 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= <Reimar.Doeffinger@gmx.de>
Date: Sat, 18 Apr 2009 17:26:00 +0000
Subject: [PATCH] Avoid code duplication in xan_unpack for the final memcpy.

Originally committed as revision 18608 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavcodec/xan.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/libavcodec/xan.c b/libavcodec/xan.c
index 748f4d1eab2..aacdcc1b830 100644
--- a/libavcodec/xan.c
+++ b/libavcodec/xan.c
@@ -157,17 +157,18 @@ static void xan_unpack(unsigned char *dest, const unsigned char *src, int dest_l
             av_memcpy_backptr(dest, back, size2);
             dest += size2;
         } else {
+            int finish;
             size = ((opcode & 0x1f) << 2) + 4;
 
-            if (size > 0x70)
-                break;
+            finish = size > 0x70;
+            if (finish)
+                size = opcode & 3;
 
             memcpy(dest, src, size);  dest += size;  src += size;
+            if (finish)
+                return;
         }
     }
-
-    size = opcode & 3;
-    memcpy(dest, src, size);  dest += size;  src += size;
 }
 
 static inline void xan_wc3_output_pixel_run(XanContext *s,
-- 
GitLab