35 lines
1.4 KiB
Diff
35 lines
1.4 KiB
Diff
From: Gerd Hoffmann <kraxel@redhat.com>
|
|
Date: Fri, 17 Mar 2017 08:21:36 +0100
|
|
Subject: [PATCH] cirrus: fix off-by-one in cirrus_bitblt_rop_bkwd_transp_*_16
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The switch from pointers to addresses (commit
|
|
026aeffcb4752054830ba203020ed6eb05bcaba8 and
|
|
ffaf857778286ca54e3804432a2369a279e73aa7) added
|
|
a off-by-one bug to 16bit backward blits. Fix.
|
|
|
|
Reported-by: 李强 <liqiang6-s@360.cn>
|
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
|
Reviewed-by: Li Qiang <liqiang6-s@360.cn>
|
|
Message-id: 1489735296-19047-1-git-send-email-kraxel@redhat.com
|
|
(cherry picked from commit f019722cbbb45aea153294fc8921fcc96a4d3fa2)
|
|
---
|
|
hw/display/cirrus_vga_rop.h | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/hw/display/cirrus_vga_rop.h b/hw/display/cirrus_vga_rop.h
|
|
index c61a677353..0841b9efa9 100644
|
|
--- a/hw/display/cirrus_vga_rop.h
|
|
+++ b/hw/display/cirrus_vga_rop.h
|
|
@@ -219,7 +219,7 @@ glue(glue(cirrus_bitblt_rop_bkwd_transp_, ROP_NAME),_16)(CirrusVGAState *s,
|
|
srcpitch += bltwidth;
|
|
for (y = 0; y < bltheight; y++) {
|
|
for (x = 0; x < bltwidth; x+=2) {
|
|
- ROP_OP_TR_16(s, dstaddr, cirrus_src16(s, srcaddr), transp);
|
|
+ ROP_OP_TR_16(s, dstaddr - 1, cirrus_src16(s, srcaddr - 1), transp);
|
|
dstaddr -= 2;
|
|
srcaddr -= 2;
|
|
}
|