Good work! That's ace, thanks for the help. Keep going
Even eyeballing the source for DisplayDLine sort of correlates with what I'm seeing. Going by the comments alone,
* First, clear the area of the line to the background color for the
* text widget.
* Next, draw background information for the whole line.
they then loop through each character(?) and call a function pointer to do some drawing. Then,
* Copy the pixmap onto the screen. <snip>
This sounds very much like what I see. The memory allocation and frees are a particular PITA as they require lots of management.
Perhaps with a bit of context the code which calls this could do a better job in CPU-constrained situations.
Anyway I've now written a stack of CPU fallback code for some of these oddball cases to improve performance.
Another culprit I've been debugging is Netsurf. There's something very wrong with it's handling of engadget.com's <div class="col2_most_commented module"> block. I'm pretty sure it's this block, as when it appears on the screen I get a huge number of 1x1 pixmaps being allocated/deallocated and composited into the window. Anyone savvy with CSS/HTML/whatever who can look at this to see what it does? The display literally takes seconds to paint once this block appears.