summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2011-08-11 11:22:57 +0200
committerMichel Dänzer <michel@daenzer.net>2011-08-11 11:22:57 +0200
commitf95a41b7851565c282d22f8d679db1377428f165 (patch)
tree422b0e9496468f80d7dd95031f5c9ebeb0277280
parent93fc0843a1e31dc9237433bc2bf17df79e956d26 (diff)
video: Don't round up bottom/right edge for clipping source width/height.
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@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--src/radeon_textured_video.c2
-rw-r--r--src/radeon_video.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
index d247db64..e49575da 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 66ff2ad1..834f9246 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);