Package: swfdec
Severity: normal
Tags: patch

When building 'swfdec' on amd64 with gcc-4.0,
I get the following error:

 x86_64-linux-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libswfdec -Wall -Werror 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libart-2.0 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I./jpeg/ -g -O2 -MT 
libswfdec_la-art.lo -MD -MP -MF .deps/libswfdec_la-art.Tpo -c art.c  -fPIC 
-DPIC -o .libs/libswfdec_la-art.o
cc1: warnings being treated as errors
art.c: In function 'art_rgb565_fillrect':
art.c:306: warning: pointer targets in passing argument 1 of 
'art_rgb565_run_alpha' differ in signedness
art.c: In function 'art_rgb_fillrect':
art.c:321: warning: pointer targets in passing argument 1 of 
'art_rgb_run_alpha' differ in signedness
make[4]: *** [libswfdec_la-art.lo] Error 1
make[4]: Leaving directory `/swfdec-0.2.2/libswfdec'

With the attached patch 'swfdec' can be compiled
on amd64 using gcc-4.0.

Regards
Andreas Jochens

diff -urN ../tmp-orig/swfdec-0.2.2/libswfdec/art.c ./libswfdec/art.c
--- ../tmp-orig/swfdec-0.2.2/libswfdec/art.c    2003-02-05 08:31:29.000000000 
+0100
+++ ./libswfdec/art.c   2005-03-07 15:05:54.356415446 +0100
@@ -298,7 +298,7 @@
 
        buffer += rect->x0 * 2;
        for(i=rect->y0;i<rect->y1;i++){
-               art_rgb565_run_alpha(buffer + i*stride,
+               art_rgb565_run_alpha((unsigned char*)buffer + i*stride,
                        SWF_COLOR_R(color),
                        SWF_COLOR_G(color),
                        SWF_COLOR_B(color),
@@ -313,7 +313,7 @@
 
        buffer += rect->x0 * 3;
        for(i=rect->y0;i<rect->y1;i++){
-               art_rgb_run_alpha(buffer + i*stride,
+               art_rgb_run_alpha((unsigned char*)buffer + i*stride,
                        SWF_COLOR_R(color),
                        SWF_COLOR_G(color),
                        SWF_COLOR_B(color),
diff -urN ../tmp-orig/swfdec-0.2.2/libswfdec/get.c ./libswfdec/get.c
--- ../tmp-orig/swfdec-0.2.2/libswfdec/get.c    2003-02-03 07:52:32.000000000 
+0100
+++ ./libswfdec/get.c   2005-03-07 15:06:21.767124673 +0100
@@ -91,9 +91,9 @@
 
 char *get_string(bits_t *bits)
 {
-       char *s = g_strdup(bits->ptr);
+       char *s = g_strdup((char*)bits->ptr);
 
-       bits->ptr += strlen(bits->ptr) + 1;
+       bits->ptr += strlen((char*)bits->ptr) + 1;
 
        return s;
 }
diff -urN ../tmp-orig/swfdec-0.2.2/libswfdec/render.c ./libswfdec/render.c
--- ../tmp-orig/swfdec-0.2.2/libswfdec/render.c 2003-02-22 04:49:30.000000000 
+0100
+++ ./libswfdec/render.c        2005-03-07 15:06:56.023512559 +0100
@@ -207,7 +207,7 @@
        s->drawrect.y0 = 0;
        s->drawrect.y1 = 0;
        if(!s->buffer){
-               s->buffer = art_new (art_u8, s->stride*s->height);
+               s->buffer = (char*) art_new (art_u8, s->stride*s->height);
                swf_invalidate_irect(s,&s->irect);
        }
        if(!s->tmp_scanline){
diff -urN ../tmp-orig/swfdec-0.2.2/libswfdec/swf.c ./libswfdec/swf.c
--- ../tmp-orig/swfdec-0.2.2/libswfdec/swf.c    2003-02-02 20:46:13.000000000 
+0100
+++ ./libswfdec/swf.c   2005-03-07 15:10:49.876374642 +0100
@@ -10,27 +10,6 @@
 int swf_inflate_init(SwfdecDecoder *s);
 int swf_parse_header2(SwfdecDecoder *s);
 
-#ifdef __GNUC__
-#define weak_alias(name, aliasname) \
-extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)))
-weak_alias(swfdec_decoder_new, swf_init);
-weak_alias(swfdec_decoder_addbits, swf_addbits);
-weak_alias(swfdec_decoder_parse, swf_parse);
-#else
-SwfdecDecoder *swf_init(void)
-{
-       return swfdec_decoder_new();
-}
-int swf_addbits(SwfdecDecoder *s, unsigned char *bits, int len)
-{
-       return swfdec_decoder_addbits(s,bits,len);
-}
-int swf_parse(SwfdecDecoder *s)
-{
-       return swfdec_decoder_parse(s);
-}
-#endif
-
 SwfdecDecoder *swfdec_decoder_new(void)
 {
        SwfdecDecoder *s;
@@ -66,7 +45,7 @@
                        return SWF_ERROR;
                }
 
-               s->parse.end = s->input_data + s->z->total_out;
+               s->parse.end = (unsigned char*) s->input_data + s->z->total_out;
        }else{
                if(s->parse.ptr){
                        offset = (void *)s->parse.ptr - (void *)s->input_data;
@@ -78,8 +57,8 @@
                memcpy(s->input_data + s->input_data_len, bits, len);
                s->input_data_len += len;
 
-               s->parse.ptr = s->input_data + offset;
-               s->parse.end = s->input_data + s->input_data_len;
+               s->parse.ptr = (unsigned char*) s->input_data + offset;
+               s->parse.end = (unsigned char*) s->input_data + 
s->input_data_len;
        }
 
        return SWF_OK;
@@ -233,7 +212,7 @@
                return SWF_ERROR;
        }
 
-       if(image) *image = s->buffer;
+       if(image) *image = (unsigned char*) s->buffer;
        s->buffer = NULL;
 
        return SWF_OK;
@@ -245,7 +224,7 @@
                return SWF_ERROR;
        }
 
-       if(image) *image = s->buffer;
+       if(image) *image = (unsigned char*) s->buffer;
 
        return SWF_OK;
 }
@@ -382,15 +361,15 @@
        z->zalloc = zalloc;
        z->zfree = zfree;
 
-       compressed_data = s->parse.ptr;
+       compressed_data = (char*) s->parse.ptr;
        compressed_len = s->input_data_len -
                ((void *)s->parse.ptr - (void *)s->input_data);
 
-       z->next_in = compressed_data;
+       z->next_in = (unsigned char*) compressed_data;
        z->avail_in = compressed_len;
        z->opaque = NULL;
        data = malloc(s->length);
-       z->next_out = data;
+       z->next_out = (unsigned char*) data;
        z->avail_out = s->length;
 
        ret = inflateInit(z);
@@ -404,7 +383,7 @@
 
        s->input_data = data;
        s->input_data_len = z->total_in;
-       s->parse.ptr = data;
+       s->parse.ptr = (unsigned char*) data;
 
        return SWF_OK;
 }
@@ -616,3 +595,25 @@
        va_end(args);
 }
 
+#ifdef __GNUC__
+#define weak_alias(name, aliasname) \
+extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)))
+weak_alias(swfdec_decoder_new, swf_init);
+weak_alias(swfdec_decoder_addbits, swf_addbits);
+weak_alias(swfdec_decoder_parse, swf_parse);
+#else
+SwfdecDecoder *swf_init(void)
+{
+       return swfdec_decoder_new();
+}
+int swf_addbits(SwfdecDecoder *s, unsigned char *bits, int len)
+{
+       return swfdec_decoder_addbits(s,bits,len);
+}
+int swf_parse(SwfdecDecoder *s)
+{
+       return swfdec_decoder_parse(s);
+}
+#endif
+
+
diff -urN ../tmp-orig/swfdec-0.2.2/libswfdec/swfdec_layer.c 
./libswfdec/swfdec_layer.c
--- ../tmp-orig/swfdec-0.2.2/libswfdec/swfdec_layer.c   2003-02-02 
20:46:13.000000000 +0100
+++ ./libswfdec/swfdec_layer.c  2005-03-07 15:11:21.605250383 +0100
@@ -200,9 +200,9 @@
        cb_data.x0 = rect.x0;
        cb_data.x1 = rect.x1;
        if(cb_data.subpixel){
-               cb_data.buf = s->buffer + rect.y0*s->stride + 
(rect.x0/3)*s->bytespp;
+               cb_data.buf = (unsigned char*) s->buffer + rect.y0*s->stride + 
(rect.x0/3)*s->bytespp;
        }else{
-               cb_data.buf = s->buffer + rect.y0*s->stride + 
rect.x0*s->bytespp;
+               cb_data.buf = (unsigned char*) s->buffer + rect.y0*s->stride + 
rect.x0*s->bytespp;
        }
        cb_data.color = layervec->color;
        cb_data.rowstride = s->stride;
diff -urN ../tmp-orig/swfdec-0.2.2/pixbuf-loader/io-swf.c 
./pixbuf-loader/io-swf.c
--- ../tmp-orig/swfdec-0.2.2/pixbuf-loader/io-swf.c     2003-02-22 
04:49:30.000000000 +0100
+++ ./pixbuf-loader/io-swf.c    2005-03-07 15:21:36.440575822 +0100
@@ -341,8 +341,8 @@
 fill_info (GdkPixbufFormat *info)
 {
        static GdkPixbufModulePattern signature[] = {
-               { "FWS", NULL, 100 },
-               { "CWS", NULL, 100 },
+               { (unsigned char*) "FWS", NULL, 100 },
+               { (unsigned char*) "CWS", NULL, 100 },
                { NULL, NULL, 0 }
        };
        static gchar *mime_types[] = { 
diff -urN ../tmp-orig/swfdec-0.2.2/player/swf_play.c ./player/swf_play.c
--- ../tmp-orig/swfdec-0.2.2/player/swf_play.c  2005-03-07 15:21:42.012500337 
+0100
+++ ./player/swf_play.c 2005-03-07 15:21:02.851059218 +0100
@@ -398,7 +398,7 @@
        data = malloc(4096);
        ret = g_io_channel_read_chars(chan, data, 4096, &bytes_read, &error);
        if(ret==G_IO_STATUS_NORMAL){
-               ret = swfdec_decoder_addbits(s,data,bytes_read);
+               ret = swfdec_decoder_addbits(s,(unsigned char*)data,bytes_read);
                if(!render_idle_id)render_idle_id = 
g_idle_add(render_idle,NULL);
        }else if(ret==G_IO_STATUS_ERROR){
                exit(1);
diff -urN ../tmp-orig/swfdec-0.2.2/test/display-shape.c ./test/display-shape.c
--- ../tmp-orig/swfdec-0.2.2/test/display-shape.c       2002-10-28 
22:24:04.000000000 +0100
+++ ./test/display-shape.c      2005-03-07 15:20:33.772671883 +0100
@@ -28,7 +28,7 @@
   gdk_draw_rgb_image (widget->window, widget->style->black_gc, 
                      0, 0, s->width, s->height, 
                      GDK_RGB_DITHER_NONE,
-                     s->buffer,
+                     (unsigned char*) s->buffer,
                      s->width*3);
   return FALSE;
 }
@@ -85,7 +85,7 @@
 
   read_swf_file(fn);
 
-  build_widget (s->buffer);
+  build_widget ((unsigned char*) s->buffer);
 
 
   /* gtk main loop */
@@ -146,7 +146,7 @@
                        drawing_area->style->black_gc, 
                        0, 0, s->width, s->height, 
                        GDK_RGB_DITHER_NONE,
-                       s->buffer,
+                       (unsigned char*) s->buffer,
                        s->width*3);
        }
 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to