[MPlayer-cvslog] r33536 - trunk/libmpcodecs/vf_ilpack.c

reimar subversion at mplayerhq.hu
Wed Jun 1 21:07:31 CEST 2011


Author: reimar
Date: Wed Jun  1 21:07:30 2011
New Revision: 33536

Log:
Do not call functions through a function pointer specifying more
arguments. It is theoretically possible to have calling models
where this would break horribly.

Modified:
   trunk/libmpcodecs/vf_ilpack.c

Modified: trunk/libmpcodecs/vf_ilpack.c
==============================================================================
--- trunk/libmpcodecs/vf_ilpack.c	Wed Jun  1 20:49:14 2011	(r33535)
+++ trunk/libmpcodecs/vf_ilpack.c	Wed Jun  1 21:07:30 2011	(r33536)
@@ -28,6 +28,7 @@
 #include "img_format.h"
 #include "mp_image.h"
 #include "vf.h"
+#include "libavutil/attributes.h"
 
 typedef void (pack_func_t)(unsigned char *dst, unsigned char *y,
     unsigned char *u, unsigned char *v, int w, int us, int vs);
@@ -38,7 +39,8 @@ struct vf_priv_s {
 };
 
 static void pack_nn_C(unsigned char *dst, unsigned char *y,
-    unsigned char *u, unsigned char *v, int w)
+    unsigned char *u, unsigned char *v, int w,
+    int av_unused us, int av_unused vs)
 {
     int j;
     for (j = w/2; j; j--) {
@@ -77,7 +79,8 @@ static void pack_li_1_C(unsigned char *d
 
 #if HAVE_MMX
 static void pack_nn_MMX(unsigned char *dst, unsigned char *y,
-    unsigned char *u, unsigned char *v, int w)
+    unsigned char *u, unsigned char *v, int w,
+    int av_unused us, int av_unused vs)
 {
     __asm__ volatile (""
         ASMALIGN(4)
@@ -103,7 +106,7 @@ static void pack_nn_MMX(unsigned char *d
         : "r" (y), "r" (u), "r" (v), "r" (dst), "r" (w/8)
         : "memory"
         );
-    pack_nn_C(dst, y, u, v, (w&7));
+    pack_nn_C(dst, y, u, v, (w&7), 0, 0);
 }
 
 #if HAVE_EBX_AVAILABLE
@@ -413,12 +416,12 @@ static int vf_open(vf_instance_t *vf, ch
     vf->priv->mode = 1;
     if (args) sscanf(args, "%d", &vf->priv->mode);
 
-    pack_nn = (pack_func_t *)pack_nn_C;
+    pack_nn = pack_nn_C;
     pack_li_0 = pack_li_0_C;
     pack_li_1 = pack_li_1_C;
 #if HAVE_MMX
     if(gCpuCaps.hasMMX) {
-        pack_nn = (pack_func_t *)pack_nn_MMX;
+        pack_nn = pack_nn_MMX;
 #if HAVE_EBX_AVAILABLE
         pack_li_0 = pack_li_0_MMX;
         pack_li_1 = pack_li_1_MMX;


More information about the MPlayer-cvslog mailing list