pixman: Branch 'region32' - 2 commits
Søren Sandmann Pedersen
sandmann at kemper.freedesktop.org
Sun Jun 8 22:04:31 PDT 2008
pixman/pixman-region.c | 24 ++++++++++++------------
test/Makefile.am | 2 ++
test/region-test.c | 23 +++++++++++++++++++++++
3 files changed, 37 insertions(+), 12 deletions(-)
New commits:
commit a76826f19893a0575c0e16079fc1ec6d33171594
Author: Søren Sandmann <sandmann at redhat.com>
Date: Mon Jun 9 01:03:15 2008 -0400
Fix uses of short variables in pixman-region.c
diff --git a/pixman/pixman-region.c b/pixman/pixman-region.c
index c37ec52..6676b00 100644
--- a/pixman/pixman-region.c
+++ b/pixman/pixman-region.c
@@ -614,8 +614,8 @@ typedef pixman_bool_t (*OverlapProcPtr)(
box_type_t *r1End,
box_type_t *r2,
box_type_t *r2End,
- short y1,
- short y2,
+ int y1,
+ int y2,
int *pOverlap);
static pixman_bool_t
@@ -635,8 +635,8 @@ pixman_op(
box_type_t * r2; /* Pointer into 2d region */
box_type_t * r1End; /* End of 1st region */
box_type_t * r2End; /* End of 2d region */
- short ybot; /* Bottom of intersection */
- short ytop; /* Top of intersection */
+ int ybot; /* Bottom of intersection */
+ int ytop; /* Top of intersection */
region_data_type_t * oldData; /* Old data for newReg */
int prevBand; /* Index of start of
* previous band in newReg */
@@ -644,8 +644,8 @@ pixman_op(
* band in newReg */
box_type_t * r1BandEnd; /* End of current band in r1 */
box_type_t * r2BandEnd; /* End of current band in r2 */
- short top; /* Top of non-overlapping band */
- short bot; /* Bottom of non-overlapping band*/
+ int top; /* Top of non-overlapping band */
+ int bot; /* Bottom of non-overlapping band*/
int r1y1; /* Temps for r1->y1 and r2->y1 */
int r2y1;
int newSize;
@@ -921,8 +921,8 @@ pixman_region_intersectO (region_type_t *region,
box_type_t *r1End,
box_type_t *r2,
box_type_t *r2End,
- short y1,
- short y2,
+ int y1,
+ int y2,
int *pOverlap)
{
int x1;
@@ -1062,8 +1062,8 @@ pixman_region_unionO (
box_type_t *r1End,
box_type_t *r2,
box_type_t *r2End,
- short y1,
- short y2,
+ int y1,
+ int y2,
int *pOverlap)
{
box_type_t * pNextRect;
@@ -1649,8 +1649,8 @@ pixman_region_subtractO (
box_type_t * r1End,
box_type_t * r2,
box_type_t * r2End,
- short y1,
- short y2,
+ int y1,
+ int y2,
int *pOverlap)
{
box_type_t * pNextRect;
diff --git a/test/region-test.c b/test/region-test.c
index 15c204b..e214e9b 100644
--- a/test/region-test.c
+++ b/test/region-test.c
@@ -3,7 +3,8 @@
#include <stdio.h>
#include "pixman.h"
-/* This seems to go into an infinite loop
+/* This used to go into an infinite loop before pixman-region.c
+ * was fixed to not use explict "short" variables
*/
int
main ()
commit 85bad33380b7b78bdd6a7238c1439bcc42e28231
Author: Søren Sandmann <sandmann at redhat.com>
Date: Mon Jun 9 00:51:28 2008 -0400
Add infinite loop test
diff --git a/test/Makefile.am b/test/Makefile.am
index d0a21c4..ced0579 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -2,6 +2,7 @@ if HAVE_GTK
TESTPROGRAMS = \
composite-test \
gradient-test \
+ region-test \
fetch-test
noinst_PROGRAMS = $(TESTPROGRAMS)
@@ -11,5 +12,6 @@ INCLUDES = -I$(top_srcdir)/pixman -I$(top_builddir)/pixman $(GTK_CFLAGS)
composite_test_LDADD = $(top_builddir)/pixman/libpixman-1.la $(GTK_LIBS)
gradient_test_LDADD = $(top_builddir)/pixman/libpixman-1.la $(GTK_LIBS)
fetch_test_LDADD = $(top_builddir)/pixman/libpixman-1.la
+region_test_LDADD = $(top_builddir)/pixman/libpixman-1.la
endif
diff --git a/test/region-test.c b/test/region-test.c
new file mode 100644
index 0000000..15c204b
--- /dev/null
+++ b/test/region-test.c
@@ -0,0 +1,22 @@
+#include <assert.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include "pixman.h"
+
+/* This seems to go into an infinite loop
+ */
+int
+main ()
+{
+ pixman_region32_t r1;
+ pixman_region32_t r2;
+ pixman_region32_t r3;
+
+ pixman_region32_init_rect (&r1, 0, 0, 20, 64000);
+ pixman_region32_init_rect (&r2, 0, 0, 20, 64000);
+ pixman_region32_init_rect (&r3, 0, 0, 20, 64000);
+
+ pixman_region32_subtract (&r1, &r2, &r3);
+
+}
+
More information about the xorg-commit
mailing list