summaryrefslogtreecommitdiffstats
path: root/grid.c
diff options
context:
space:
mode:
authornicm <nicm>2019-09-24 20:44:58 +0000
committernicm <nicm>2019-09-24 20:44:58 +0000
commite3359f8349cf972052604c089b5bab71f5e33095 (patch)
tree1604049179d85325334658c5447d0e1875a806ee /grid.c
parente8adcae0f24c6089cae9c60e7b087a00a582f9f9 (diff)
Some minor performance improvements - most notably, don't search the
input state table if the next character matches the same state as before.
Diffstat (limited to 'grid.c')
-rw-r--r--grid.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/grid.c b/grid.c
index 2f1e9b59..a016dc12 100644
--- a/grid.c
+++ b/grid.c
@@ -186,17 +186,19 @@ grid_clear_cell(struct grid *gd, u_int px, u_int py, u_int bg)
struct grid_cell *gc;
memcpy(gce, &grid_cleared_entry, sizeof *gce);
- if (bg & COLOUR_FLAG_RGB) {
- grid_get_extended_cell(gl, gce, gce->flags);
- gl->flags |= GRID_LINE_EXTENDED;
+ if (bg != 8) {
+ if (bg & COLOUR_FLAG_RGB) {
+ grid_get_extended_cell(gl, gce, gce->flags);
+ gl->flags |= GRID_LINE_EXTENDED;
- gc = &gl->extddata[gce->offset];
- memcpy(gc, &grid_cleared_cell, sizeof *gc);
- gc->bg = bg;
- } else {
- if (bg & COLOUR_FLAG_256)
- gce->flags |= GRID_FLAG_BG256;
- gce->data.bg = bg;
+ gc = &gl->extddata[gce->offset];
+ memcpy(gc, &grid_cleared_cell, sizeof *gc);
+ gc->bg = bg;
+ } else {
+ if (bg & COLOUR_FLAG_256)
+ gce->flags |= GRID_FLAG_BG256;
+ gce->data.bg = bg;
+ }
}
}