Hi,
Attached is a diff that resolves a number of warnings I encountered when
porting pixman over to my RTOS.
Most examples compile cleanly now.
I had to move the definitions of PIXMAN_null, PIXMAN_any and related so
they become type-safe, otherwise my compiler gives a enumeration to int
cast warning. It is cleaner that way anyway.
--Rolland
diff -urN pixman-0.21.4.orig/pixman/pixman.c pixman-0.21.4/pixman/pixman.c
--- pixman-0.21.4.orig/pixman/pixman.c 2011-01-19 13:13:01.000000000 +0100
+++ pixman-0.21.4/pixman/pixman.c 2011-01-22 19:49:28.000000000 +0100
@@ -159,7 +159,7 @@
is_dest_opaque >>= OPAQUE_SHIFT - 1;
is_source_opaque >>= OPAQUE_SHIFT;
- return operator_table[op].opaque_info[is_dest_opaque | is_source_opaque];
+ return (pixman_op_t)operator_table[op].opaque_info[is_dest_opaque | is_source_opaque];
}
/*
diff -urN pixman-0.21.4.orig/pixman/pixman-fast-path.c pixman-0.21.4/pixman/pixman-fast-path.c
--- pixman-0.21.4.orig/pixman/pixman-fast-path.c 2011-01-19 13:13:08.000000000 +0100
+++ pixman-0.21.4/pixman/pixman-fast-path.c 2011-01-22 19:58:39.000000000 +0100
@@ -364,7 +364,7 @@
int32_t width,
int32_t height)
{
- uint32_t src, srca, s;
+ uint32_t src, s;
uint32_t *dst_line, *dst, d;
uint32_t *mask_line, *mask, ma;
int dst_stride, mask_stride;
@@ -372,7 +372,6 @@
src = _pixman_image_get_solid (imp, src_image, dst_image->bits.format);
- srca = src >> 24;
if (src == 0)
return;
diff -urN pixman-0.21.4.orig/pixman/pixman-fast-path.h pixman-0.21.4/pixman/pixman-fast-path.h
--- pixman-0.21.4.orig/pixman/pixman-fast-path.h 2011-01-19 13:13:08.000000000 +0100
+++ pixman-0.21.4/pixman/pixman-fast-path.h 2011-01-22 19:53:12.000000000 +0100
@@ -265,7 +265,7 @@
dst_type_t *dst_line; \
src_type_t *src_first_line; \
int y; \
- pixman_fixed_t max_vx = max_vx; /* suppress uninitialized variable warning */ \
+ pixman_fixed_t max_vx = INT32_MAX; /* suppress uninitialized variable warning */ \
pixman_fixed_t max_vy; \
pixman_vector_t v; \
pixman_fixed_t vx, vy; \
diff -urN pixman-0.21.4.orig/pixman/pixman.h pixman-0.21.4/pixman/pixman.h
--- pixman-0.21.4.orig/pixman/pixman.h 2011-01-19 13:13:01.000000000 +0100
+++ pixman-0.21.4/pixman/pixman.h 2011-01-22 19:56:43.000000000 +0100
@@ -354,7 +354,8 @@
#ifdef PIXMAN_USE_INTERNAL_API
,
PIXMAN_N_OPERATORS,
- PIXMAN_OP_NONE = PIXMAN_N_OPERATORS
+ PIXMAN_OP_NONE = PIXMAN_N_OPERATORS,
+ PIXMAN_OP_any = PIXMAN_N_OPERATORS + 1
#endif
} pixman_op_t;
@@ -719,7 +720,17 @@
/* YUV formats */
PIXMAN_yuy2 = PIXMAN_FORMAT(16,PIXMAN_TYPE_YUY2,0,0,0,0),
- PIXMAN_yv12 = PIXMAN_FORMAT(12,PIXMAN_TYPE_YV12,0,0,0,0)
+ PIXMAN_yv12 = PIXMAN_FORMAT(12,PIXMAN_TYPE_YV12,0,0,0,0),
+
+/* These "formats" all have depth 0, so they
+ * will never clash with any real ones
+ */
+ PIXMAN_null = PIXMAN_FORMAT (0, 0, 0, 0, 0, 0),
+ PIXMAN_solid = PIXMAN_FORMAT (0, 1, 0, 0, 0, 0),
+ PIXMAN_pixbuf = PIXMAN_FORMAT (0, 2, 0, 0, 0, 0),
+ PIXMAN_rpixbuf = PIXMAN_FORMAT (0, 3, 0, 0, 0, 0),
+ PIXMAN_unknown = PIXMAN_FORMAT (0, 4, 0, 0, 0, 0),
+ PIXMAN_any = PIXMAN_FORMAT (0, 5, 0, 0, 0, 0)
} pixman_format_code_t;
/* Querying supported format values. */
diff -urN pixman-0.21.4.orig/pixman/pixman-image.c pixman-0.21.4/pixman/pixman-image.c
--- pixman-0.21.4.orig/pixman/pixman-image.c 2011-01-19 13:13:08.000000000 +0100
+++ pixman-0.21.4/pixman/pixman-image.c 2011-01-22 19:57:37.000000000 +0100
@@ -717,7 +717,7 @@
if (image->type == BITS)
return image->bits.format;
- return 0;
+ return PIXMAN_null;
}
uint32_t
diff -urN pixman-0.21.4.orig/pixman/pixman-matrix.c pixman-0.21.4/pixman/pixman-matrix.c
--- pixman-0.21.4.orig/pixman/pixman-matrix.c 2011-01-19 13:13:08.000000000 +0100
+++ pixman-0.21.4/pixman/pixman-matrix.c 2011-01-22 19:54:06.000000000 +0100
@@ -465,9 +465,6 @@
return TRUE;
}
-static const int a[3] = { 3, 3, 2 };
-static const int b[3] = { 2, 1, 1 };
-
PIXMAN_EXPORT pixman_bool_t
pixman_f_transform_invert (struct pixman_f_transform * dst,
const struct pixman_f_transform *src)
diff -urN pixman-0.21.4.orig/pixman/pixman-private.h pixman-0.21.4/pixman/pixman-private.h
--- pixman-0.21.4.orig/pixman/pixman-private.h 2011-01-19 13:13:08.000000000 +0100
+++ pixman-0.21.4/pixman/pixman-private.h 2011-01-22 19:36:14.000000000 +0100
@@ -572,16 +572,6 @@
uint32_t *
_pixman_iter_get_scanline_noop (pixman_iter_t *iter, const uint32_t *mask);
-/* These "formats" all have depth 0, so they
- * will never clash with any real ones
- */
-#define PIXMAN_null PIXMAN_FORMAT (0, 0, 0, 0, 0, 0)
-#define PIXMAN_solid PIXMAN_FORMAT (0, 1, 0, 0, 0, 0)
-#define PIXMAN_pixbuf PIXMAN_FORMAT (0, 2, 0, 0, 0, 0)
-#define PIXMAN_rpixbuf PIXMAN_FORMAT (0, 3, 0, 0, 0, 0)
-#define PIXMAN_unknown PIXMAN_FORMAT (0, 4, 0, 0, 0, 0)
-#define PIXMAN_any PIXMAN_FORMAT (0, 5, 0, 0, 0, 0)
-
#define PIXMAN_OP_any (PIXMAN_N_OPERATORS + 1)
#define FAST_PATH_ID_TRANSFORM (1 << 0)
diff -urN pixman-0.21.4.orig/pixman/pixman-trap.c pixman-0.21.4/pixman/pixman-trap.c
--- pixman-0.21.4.orig/pixman/pixman-trap.c 2011-01-16 12:34:58.000000000 +0100
+++ pixman-0.21.4/pixman/pixman-trap.c 2011-01-22 20:01:34.000000000 +0100
@@ -235,7 +235,6 @@
pixman_trap_t * traps)
{
int bpp;
- int width;
int height;
pixman_fixed_t x_off_fixed;
@@ -245,7 +244,6 @@
_pixman_image_validate (image);
- width = image->bits.width;
height = image->bits.height;
bpp = PIXMAN_FORMAT_BPP (image->bits.format);
@@ -349,10 +347,8 @@
int y_off)
{
int bpp;
- int width;
int height;
- pixman_fixed_t x_off_fixed;
pixman_fixed_t y_off_fixed;
pixman_edge_t l, r;
pixman_fixed_t t, b;
@@ -364,11 +360,9 @@
if (!pixman_trapezoid_valid (trap))
return;
- width = image->bits.width;
height = image->bits.height;
bpp = PIXMAN_FORMAT_BPP (image->bits.format);
- x_off_fixed = pixman_int_to_fixed (x_off);
y_off_fixed = pixman_int_to_fixed (y_off);
t = trap->top + y_off_fixed;
diff -urN pixman-0.21.4.orig/test/affine-test.c pixman-0.21.4/test/affine-test.c
--- pixman-0.21.4.orig/test/affine-test.c 2011-01-19 13:13:01.000000000 +0100
+++ pixman-0.21.4/test/affine-test.c 2011-01-22 19:42:14.000000000 +0100
@@ -40,9 +40,9 @@
int w, h;
pixman_fixed_t scale_x = 65536, scale_y = 65536;
pixman_fixed_t translate_x = 0, translate_y = 0;
- int op;
- int repeat = 0;
- int src_fmt, dst_fmt;
+ pixman_op_t op;
+ pixman_repeat_t repeat = PIXMAN_REPEAT_NONE;
+ pixman_format_code_t src_fmt, dst_fmt;
uint32_t * srcbuf;
uint32_t * dstbuf;
uint32_t crc32;
diff -urN pixman-0.21.4.orig/test/blitters-test.c pixman-0.21.4/test/blitters-test.c
--- pixman-0.21.4.orig/test/blitters-test.c 2011-01-19 13:13:01.000000000 +0100
+++ pixman-0.21.4/test/blitters-test.c 2011-01-22 19:42:00.000000000 +0100
@@ -78,7 +78,7 @@
uint32_t *data = pixman_image_get_data (img);
int height = pixman_image_get_height (img);
- if (fmt != -1)
+ if (PIXMAN_FORMAT_BPP(fmt) != 0)
{
/* mask unused 'x' part */
if (PIXMAN_FORMAT_BPP (fmt) - PIXMAN_FORMAT_DEPTH (fmt) &&
@@ -218,7 +218,7 @@
PIXMAN_a1r1g1b1,
PIXMAN_a1b1g1r1,
PIXMAN_a1,
- -1
+ PIXMAN_null
};
static pixman_format_code_t mask_fmt_list[] = {
@@ -226,7 +226,7 @@
PIXMAN_a8,
PIXMAN_a4,
PIXMAN_a1,
- -1
+ PIXMAN_null
};
@@ -247,7 +247,7 @@
int dst_x, dst_y;
int mask_x, mask_y;
int w, h;
- int op;
+ pixman_op_t op;
pixman_format_code_t src_fmt, dst_fmt, mask_fmt;
uint32_t *dstbuf, *srcbuf, *maskbuf;
uint32_t crc32;
@@ -305,7 +305,7 @@
dst_y = lcg_rand_n (dst_height);
mask_img = NULL;
- mask_fmt = -1;
+ mask_fmt = PIXMAN_null;
mask_x = 0;
mask_y = 0;
maskbuf = NULL;
@@ -385,7 +385,7 @@
printf ("---\n");
}
- free_random_image (0, src_img, -1);
+ free_random_image (0, src_img, PIXMAN_null);
crc32 = free_random_image (0, dst_img, dst_fmt);
if (mask_img)
@@ -393,7 +393,7 @@
if (srcbuf == maskbuf)
pixman_image_unref(mask_img);
else
- free_random_image (0, mask_img, -1);
+ free_random_image (0, mask_img, PIXMAN_null);
}
FLOAT_REGS_CORRUPTION_DETECTOR_FINISH ();
diff -urN pixman-0.21.4.orig/test/fetch-test.c pixman-0.21.4/test/fetch-test.c
--- pixman-0.21.4.orig/test/fetch-test.c 2010-12-17 22:55:23.000000000 +0100
+++ pixman-0.21.4/test/fetch-test.c 2011-01-22 18:47:56.000000000 +0100
@@ -117,6 +117,7 @@
default:
assert(0);
}
+ return 0;
}
diff -urN pixman-0.21.4.orig/test/scaling-crash-test.c pixman-0.21.4/test/scaling-crash-test.c
--- pixman-0.21.4.orig/test/scaling-crash-test.c 2011-01-19 13:13:01.000000000 +0100
+++ pixman-0.21.4/test/scaling-crash-test.c 2011-01-22 19:46:26.000000000 +0100
@@ -95,21 +95,29 @@
return result;
}
-typedef struct info_t info_t;
-struct info_t
+typedef struct filter_info_t filter_info_t;
+struct filter_info_t
{
- int value;
+ pixman_filter_t value;
char name[28];
};
-static const info_t filters[] =
+static const filter_info_t filters[] =
{
{ PIXMAN_FILTER_NEAREST, "NEAREST" },
{ PIXMAN_FILTER_BILINEAR, "BILINEAR" },
{ PIXMAN_FILTER_CONVOLUTION, "CONVOLUTION" },
};
-static const info_t repeats[] =
+typedef struct repeat_info_t repeat_info_t;
+struct repeat_info_t
+{
+ pixman_repeat_t value;
+ char name[28];
+};
+
+
+static const repeat_info_t repeats[] =
{
{ PIXMAN_REPEAT_PAD, "PAD" },
{ PIXMAN_REPEAT_REFLECT, "REFLECT" },
diff -urN pixman-0.21.4.orig/test/scaling-test.c pixman-0.21.4/test/scaling-test.c
--- pixman-0.21.4.orig/test/scaling-test.c 2011-01-19 13:13:01.000000000 +0100
+++ pixman-0.21.4/test/scaling-test.c 2011-01-22 19:48:09.000000000 +0100
@@ -40,9 +40,9 @@
int w, h;
pixman_fixed_t scale_x = 65536, scale_y = 65536;
pixman_fixed_t translate_x = 0, translate_y = 0;
- int op;
- int repeat = 0;
- int src_fmt, dst_fmt;
+ pixman_op_t op;
+ pixman_repeat_t repeat = PIXMAN_REPEAT_NONE;
+ pixman_format_code_t src_fmt, dst_fmt;
uint32_t * srcbuf;
uint32_t * dstbuf;
uint32_t crc32;
diff -urN pixman-0.21.4.orig/test/stress-test.c pixman-0.21.4/test/stress-test.c
--- pixman-0.21.4.orig/test/stress-test.c 2011-01-19 13:13:01.000000000 +0100
+++ pixman-0.21.4/test/stress-test.c 2011-01-22 19:22:36.000000000 +0100
@@ -130,6 +130,7 @@
assert (0);
break;
}
+ return 0;
}
static void
diff -urN pixman-0.21.4.orig/test/utils.c pixman-0.21.4/test/utils.c
--- pixman-0.21.4.orig/test/utils.c 2011-01-19 13:13:01.000000000 +0100
+++ pixman-0.21.4/test/utils.c 2011-01-22 19:47:36.000000000 +0100
@@ -295,7 +295,7 @@
#else
void *
-fence_malloc (uint32_t len)
+fence_malloc (int64_t len)
{
return malloc (len);
}
@@ -450,6 +450,8 @@
#endif
}
+#ifdef HAVE_SIGACTION
+#ifdef HAVE_ALARM
static const char *global_msg;
static void
@@ -458,6 +460,8 @@
printf ("%s\n", global_msg);
exit (1);
}
+#endif
+#endif
void
fail_after (int seconds, const char *msg)
_______________________________________________
Pixman mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pixman