Hi tech@,

Here is a diff to avoid calculating offset several times in rasops.c.
This was done for a few functions already, but not all of them.

Comments? OK?

Index: sys/dev/rasops/rasops.c
===================================================================
RCS file: /cvs/src/sys/dev/rasops/rasops.c,v
retrieving revision 1.42
diff -u -p -r1.42 rasops.c
--- sys/dev/rasops/rasops.c     7 Sep 2015 18:00:58 -0000       1.42
+++ sys/dev/rasops/rasops.c     21 Sep 2016 14:44:58 -0000
@@ -1577,8 +1577,10 @@ rasops_vcons_erasecols(void *cookie, int
        int i;
 
        for (i = 0; i < num; i++) {
-               scr->rs_bs[row * cols + col + i].uc = ' ';
-               scr->rs_bs[row * cols + col + i].attr = attr;
+               int off = row * cols + col + i;
+
+               scr->rs_bs[off].uc = ' ';
+               scr->rs_bs[off].attr = attr;
        }
 
        if (!scr->rs_visible)
@@ -1626,8 +1628,10 @@ rasops_vcons_eraserows(void *cookie, int
        int i;
 
        for (i = 0; i < num * cols; i++) {
-               scr->rs_bs[row * cols + i].uc = ' ';
-               scr->rs_bs[row * cols + i].attr = attr;
+               int off = row * cols + i;
+
+               scr->rs_bs[off].uc = ' ';
+               scr->rs_bs[off].attr = attr;
        }
 
        if (!scr->rs_visible)
@@ -1695,8 +1699,10 @@ rasops_wronly_erasecols(void *cookie, in
        int i;
 
        for (i = 0; i < num; i++) {
-               ri->ri_bs[row * cols + col + i].uc = ' ';
-               ri->ri_bs[row * cols + col + i].attr = attr;
+               int off = row * cols + col + i;
+
+               ri->ri_bs[off].uc = ' ';
+               ri->ri_bs[off].attr = attr;
        }
 
        return ri->ri_erasecols(ri, row, col, num, attr);
@@ -1734,8 +1740,10 @@ rasops_wronly_eraserows(void *cookie, in
        int i;
 
        for (i = 0; i < num * cols; i++) {
-               ri->ri_bs[row * cols + i].uc = ' ';
-               ri->ri_bs[row * cols + i].attr = attr;
+               int off = row * cols + i;
+
+               ri->ri_bs[off].uc = ' ';
+               ri->ri_bs[off].attr = attr;
        }
 
        return ri->ri_eraserows(ri, row, num, attr);

Reply via email to