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);