diff --git a/packages/flutter/lib/src/rendering/object.dart b/packages/flutter/lib/src/rendering/object.dart index 346b6cc2b58..87a81a631e1 100644 --- a/packages/flutter/lib/src/rendering/object.dart +++ b/packages/flutter/lib/src/rendering/object.dart @@ -1584,12 +1584,15 @@ abstract class RenderObject extends AbstractNode with DiagnosticableTreeMixin im if (_relayoutBoundary != this) { _relayoutBoundary = null; _needsLayout = true; - visitChildren((RenderObject child) { - child._cleanRelayoutBoundary(); - }); + visitChildren(_cleanChildRelayoutBoundary); } } + // Reduces closure allocation for visitChildren use cases. + static void _cleanChildRelayoutBoundary(RenderObject child) { + child._cleanRelayoutBoundary(); + } + /// Bootstrap the rendering pipeline by scheduling the very first layout. /// /// Requires this render object to be attached and that this render object @@ -1724,9 +1727,7 @@ abstract class RenderObject extends AbstractNode with DiagnosticableTreeMixin im // The local relayout boundary has changed, must notify children in case // they also need updating. Otherwise, they will be confused about what // their actual relayout boundary is later. - visitChildren((RenderObject child) { - child._cleanRelayoutBoundary(); - }); + visitChildren(_cleanChildRelayoutBoundary); } _relayoutBoundary = relayoutBoundary; assert(!_debugMutationsLocked);