xserver: Branch 'glucose-2' - 2 commits

Jose Fonseca jrfonseca at kemper.freedesktop.org
Mon Sep 17 11:16:45 PDT 2007


 fb/fb.h            |    4 ++--
 fb/fbpict.c        |    2 +-
 hw/xgl/xglpixmap.c |    2 +-
 render/picture.c   |    4 +++-
 4 files changed, 7 insertions(+), 5 deletions(-)

New commits:
diff-tree 41a5aee3859d4d7e648132ed0c4f204084d7c4f0 (from b16472ce94b954efdc0d9acadd3bb9b521c9c6fd)
Author: José Fonseca <jrfonseca at tungstengraphics.com>
Date:   Mon Sep 17 19:11:03 2007 +0100

    Prevent promotion to unsigned when calculating strides.

diff --git a/fb/fb.h b/fb/fb.h
index a924f49..01c05d7 100644
--- a/fb/fb.h
+++ b/fb/fb.h
@@ -715,7 +715,7 @@ typedef struct {
     } \
     fbPrepareAccess(pDrawable); \
     (pointer) = (FbBits *) _pPix->devPrivate.ptr; \
-    (stride) = ((int) _pPix->devKind) / sizeof (FbBits); (void)(stride); \
+    (stride) = _pPix->devKind / (int) sizeof (FbBits); (void)(stride); \
     (bpp) = _pPix->drawable.bitsPerPixel;  (void)(bpp); \
 }
 
@@ -732,7 +732,7 @@ typedef struct {
     } \
     fbPrepareAccess(pDrawable); \
     (pointer) = (FbStip *) _pPix->devPrivate.ptr; \
-    (stride) = ((int) _pPix->devKind) / sizeof (FbStip); (void)(stride); \
+    (stride) = _pPix->devKind / (int) sizeof (FbStip); (void)(stride); \
     (bpp) = _pPix->drawable.bitsPerPixel; (void)(bpp); \
 }
 
diff --git a/fb/fbpict.c b/fb/fbpict.c
index 85b5171..9b360bb 100644
--- a/fb/fbpict.c
+++ b/fb/fbpict.c
@@ -297,7 +297,7 @@ create_bits_picture (PicturePtr pict,
     image = pixman_image_create_bits (
 	pict->format,
 	pict->pDrawable->width, pict->pDrawable->height,
-	(uint32_t *)bits, stride * sizeof (FbStride));
+	(uint32_t *)bits, stride * (int) sizeof (FbStride));
     
     
 #ifdef FB_ACCESS_WRAPPER
diff --git a/hw/xgl/xglpixmap.c b/hw/xgl/xglpixmap.c
index 69ef9c9..56c7ecd 100644
--- a/hw/xgl/xglpixmap.c
+++ b/hw/xgl/xglpixmap.c
@@ -600,7 +600,7 @@ xglAllocatePixmapBits (PixmapPtr pPixmap
     height = pPixmap->drawable.height;
     bpp    = pPixmap->drawable.bitsPerPixel;
 
-    stride = ((width * bpp + FB_MASK) >> FB_SHIFT) * sizeof (FbBits);
+    stride = ((width * bpp + FB_MASK) >> FB_SHIFT) * (int) sizeof (FbBits);
 
     if (stride)
     {
diff-tree b16472ce94b954efdc0d9acadd3bb9b521c9c6fd (from 79677d094cf5f0f2f84f930aea882efc531b5e8b)
Author: José Fonseca <jrfonseca at tungstengraphics.com>
Date:   Mon Sep 17 18:51:26 2007 +0100

    Catch SourcePictTypeOther when freeing data.

diff --git a/render/picture.c b/render/picture.c
index a3c0286..129d0e7 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -1636,7 +1636,9 @@ FreePicture (pointer	value,
 
 	if (pPicture->pSourcePict)
 	{
-	    if (pPicture->pSourcePict->type != SourcePictTypeSolidFill)
+	    if (pPicture->pSourcePict->type != SourcePictTypeSolidFill &&
+		pPicture->pSourcePict->type != SourcePictTypeOther
+	    )
 		xfree(pPicture->pSourcePict->linear.stops);
 
 	    if (pPicture->pSourcePict->source.Destroy)


More information about the xorg-commit mailing list