[PATCH] video: Don't round up bottom/right edge for clipping source width/height.

Michel Dänzer michel at daenzer.net
Thu Aug 11 02:26:49 PDT 2011


From: Michel Dänzer <michel.daenzer at amd.com>

It's not necessary: If the top/left edge was rounded down, this will be
compensated by the subtraction.

Worse, if the original source width/height is odd, rounding up may result in
reading past the end of the source data.

Fixes http://bugs.debian.org/637258 .

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---

Am I missing a reason why this would be necessary?

 src/radeon_textured_video.c |    2 +-
 src/radeon_video.c          |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
index d247db6..e49575d 100644
--- a/src/radeon_textured_video.c
+++ b/src/radeon_textured_video.c
@@ -383,7 +383,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
 
     /* copy data */
     top = (y1 >> 16) & ~1;
-    nlines = RADEON_ALIGN((y2 + 0xffff) >> 16, 2) - top;
+    nlines = ((y2 + 0xffff) >> 16) - top;
 
     pPriv->src_offset = pPriv->video_offset;
     if (info->cs) {
diff --git a/src/radeon_video.c b/src/radeon_video.c
index 66ff2ad..834f924 100644
--- a/src/radeon_video.c
+++ b/src/radeon_video.c
@@ -2996,7 +2996,7 @@ RADEONPutImage(
     /* copy data */
    top = ya >> 16;
    left = (xa >> 16) & ~1;
-   npixels = (RADEON_ALIGN((xb + 0xffff) >> 16, 2)) - left;
+   npixels = ((xb + 0xffff) >> 16) - left;
 
    offset = (pPriv->video_offset) + (top * dstPitch);
 
@@ -3055,7 +3055,7 @@ RADEONPutImage(
 		s2offset = s3offset;
 		s3offset = tmp;
 	    }
-	    nlines = (RADEON_ALIGN((yb + 0xffff) >> 16, 2)) - top;
+	    nlines = ((yb + 0xffff) >> 16) - top;
 	    RADEONCopyMungedData(pScrn, buf + (top * srcPitch) + left,
 				 buf + s2offset, buf + s3offset, dst_start,
 				 srcPitch, srcPitch2, dstPitch, nlines, npixels);
-- 
1.7.5.4




More information about the xorg-driver-ati mailing list