projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix inadvertent O(N^2) loop within do_paint() which I just
[u/mdw/putty]
/
terminal.c
diff --git
a/terminal.c
b/terminal.c
index
db61a1a
..
72ff9f9
100644
(file)
--- a/
terminal.c
+++ b/
terminal.c
@@
-4822,10
+4822,12
@@
static void do_paint(Terminal *term, Context ctx, int may_optimise)
!= newline[j].attr) {
int k;
!= newline[j].attr) {
int k;
- for (k = laststart; k < j; k++)
- term->disptext[i]->chars[k].attr |= ATTR_INVALID;
+ if (!dirtyrect) {
+ for (k = laststart; k < j; k++)
+ term->disptext[i]->chars[k].attr |= ATTR_INVALID;
- dirtyrect = TRUE;
+ dirtyrect = TRUE;
+ }
}
if (dirtyrect)
}
if (dirtyrect)