Commit f0ebc2b0 authored by Adam Barth's avatar Adam Barth

Merge pull request #279 from abarth/faster_layout

Make layout_bench.dart 19% faster
parents 8c98ea37 1d7cd6b7
......@@ -926,13 +926,15 @@ abstract class RenderObject extends AbstractNode implements HitTestTarget {
/// writes are coalesced, removing redundant computation.
void markNeedsPaint() {
assert(!debugDoingPaint);
if (!attached) return; // Don't try painting things that aren't in the hierarchy
if (_needsPaint) return;
if (!attached)
return; // Don't try painting things that aren't in the hierarchy
if (_needsPaint)
return;
_needsPaint = true;
if (hasLayer) {
// If we always have our own layer, then we can just repaint
// ourselves without involving any other nodes.
assert(_layer != null);
_needsPaint = true;
_nodesNeedingPaint.add(this);
scheduler.ensureVisualUpdate();
} else if (parent is RenderObject) {
......@@ -948,7 +950,6 @@ abstract class RenderObject extends AbstractNode implements HitTestTarget {
// then we have to paint ourselves, since nobody else can paint
// us. We don't add ourselves to _nodesNeedingPaint in this
// case, because the root is always told to paint regardless.
_needsPaint = true;
scheduler.ensureVisualUpdate();
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment