Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/rasops Fix a bug in shadow fb support for copycols o...



details:   https://anonhg.NetBSD.org/src/rev/84432b89a948
branches:  trunk
changeset: 458594:84432b89a948
user:      rin <rin%NetBSD.org@localhost>
date:      Fri Aug 02 04:35:54 2019 +0000

description:
Fix a bug in shadow fb support for copycols on 1, 2, and 4bpp screen,
which was introduced in 1.18:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/dev/rasops/rasops_bitops.h#rev1.18

diffstat:

 sys/dev/rasops/rasops_bitops.h |  13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diffs (36 lines):

diff -r fde7818142ad -r 84432b89a948 sys/dev/rasops/rasops_bitops.h
--- a/sys/dev/rasops/rasops_bitops.h    Fri Aug 02 04:31:54 2019 +0000
+++ b/sys/dev/rasops/rasops_bitops.h    Fri Aug 02 04:35:54 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rasops_bitops.h,v 1.21 2019/08/02 04:31:54 rin Exp $   */
+/*     $NetBSD: rasops_bitops.h,v 1.22 2019/08/02 04:35:54 rin Exp $   */
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -298,8 +298,6 @@
                while (height--) {
                        sp = srp;
                        dp = drp;
-                       DELTA(srp, ri->ri_stride, uint32_t *);
-                       DELTA(drp, ri->ri_stride, uint32_t *);
 
                        if (rnum) {
                                GETBITS(sp, sboff, rnum, tmp);
@@ -324,11 +322,14 @@
 
                        if (ri->ri_hwbits) {
                                hp = dhp;
-                               hp -= full + (lmask != 0);
-                               memcpy(hp, dp, ((rmask != 0) + cnt +
-                                   (lmask != 0)) << 2);
+                               hp -= (lmask != 0) + full;
+                               memcpy(hp, dp, ((lmask != 0) + full +
+                                   (rnum != 0)) << 2);
                                DELTA(dhp, ri->ri_stride, uint32_t *);
                        }
+
+                       DELTA(srp, ri->ri_stride, uint32_t *);
+                       DELTA(drp, ri->ri_stride, uint32_t *);
                }
        } else {
                /* Copy left-to-right */



Home | Main Index | Thread Index | Old Index