diff --git a/packages/flutter/lib/src/rendering/viewport_offset.dart b/packages/flutter/lib/src/rendering/viewport_offset.dart index 44d5caddc2c..071bcedf02e 100644 --- a/packages/flutter/lib/src/rendering/viewport_offset.dart +++ b/packages/flutter/lib/src/rendering/viewport_offset.dart @@ -97,7 +97,11 @@ abstract class ViewportOffset extends ChangeNotifier { /// Default constructor. /// /// Allows subclasses to construct this object directly. - ViewportOffset(); + ViewportOffset() { + if (kFlutterMemoryAllocationsEnabled) { + ChangeNotifier.maybeDispatchObjectCreation(this); + } + } /// Creates a viewport offset with the given [pixels] value. /// diff --git a/packages/flutter/test/widgets/two_dimensional_viewport_test.dart b/packages/flutter/test/widgets/two_dimensional_viewport_test.dart index b7432de826f..28f3bcac73b 100644 --- a/packages/flutter/test/widgets/two_dimensional_viewport_test.dart +++ b/packages/flutter/test/widgets/two_dimensional_viewport_test.dart @@ -1441,10 +1441,15 @@ void main() { // Horizontal mismatch expect( () { + final ViewportOffset verticalOffset = ViewportOffset.fixed(0.0); + addTearDown(verticalOffset.dispose); + final ViewportOffset horizontalOffset = ViewportOffset.fixed(0.0); + addTearDown(horizontalOffset.dispose); + SimpleBuilderTableViewport( - verticalOffset: ViewportOffset.fixed(0.0), + verticalOffset: verticalOffset, verticalAxisDirection: AxisDirection.left, - horizontalOffset: ViewportOffset.fixed(0.0), + horizontalOffset: horizontalOffset, horizontalAxisDirection: AxisDirection.right, delegate: builderDelegate, mainAxis: Axis.vertical, @@ -1462,10 +1467,15 @@ void main() { // Vertical mismatch expect( () { + final ViewportOffset verticalOffset = ViewportOffset.fixed(0.0); + addTearDown(verticalOffset.dispose); + final ViewportOffset horizontalOffset = ViewportOffset.fixed(0.0); + addTearDown(horizontalOffset.dispose); + SimpleBuilderTableViewport( - verticalOffset: ViewportOffset.fixed(0.0), + verticalOffset: verticalOffset, verticalAxisDirection: AxisDirection.up, - horizontalOffset: ViewportOffset.fixed(0.0), + horizontalOffset: horizontalOffset, horizontalAxisDirection: AxisDirection.down, delegate: builderDelegate, mainAxis: Axis.vertical, @@ -1483,10 +1493,15 @@ void main() { // Both expect( () { + final ViewportOffset verticalOffset = ViewportOffset.fixed(0.0); + addTearDown(verticalOffset.dispose); + final ViewportOffset horizontalOffset = ViewportOffset.fixed(0.0); + addTearDown(horizontalOffset.dispose); + SimpleBuilderTableViewport( - verticalOffset: ViewportOffset.fixed(0.0), + verticalOffset: verticalOffset, verticalAxisDirection: AxisDirection.left, - horizontalOffset: ViewportOffset.fixed(0.0), + horizontalOffset: horizontalOffset, horizontalAxisDirection: AxisDirection.down, delegate: builderDelegate, mainAxis: Axis.vertical, @@ -1548,10 +1563,15 @@ void main() { // Horizontal mismatch expect( () { + final ViewportOffset verticalOffset = ViewportOffset.fixed(0.0); + addTearDown(verticalOffset.dispose); + final ViewportOffset horizontalOffset = ViewportOffset.fixed(0.0); + addTearDown(horizontalOffset.dispose); + RenderSimpleBuilderTableViewport( - verticalOffset: ViewportOffset.fixed(0.0), + verticalOffset: verticalOffset, verticalAxisDirection: AxisDirection.left, - horizontalOffset: ViewportOffset.fixed(0.0), + horizontalOffset: horizontalOffset, horizontalAxisDirection: AxisDirection.right, delegate: builderDelegate, mainAxis: Axis.vertical, @@ -1570,10 +1590,15 @@ void main() { // Vertical mismatch expect( () { + final ViewportOffset verticalOffset = ViewportOffset.fixed(0.0); + addTearDown(verticalOffset.dispose); + final ViewportOffset horizontalOffset = ViewportOffset.fixed(0.0); + addTearDown(horizontalOffset.dispose); + RenderSimpleBuilderTableViewport( - verticalOffset: ViewportOffset.fixed(0.0), + verticalOffset: verticalOffset, verticalAxisDirection: AxisDirection.up, - horizontalOffset: ViewportOffset.fixed(0.0), + horizontalOffset: horizontalOffset, horizontalAxisDirection: AxisDirection.down, delegate: builderDelegate, mainAxis: Axis.vertical, @@ -1592,10 +1617,15 @@ void main() { // Both expect( () { + final ViewportOffset verticalOffset = ViewportOffset.fixed(0.0); + addTearDown(verticalOffset.dispose); + final ViewportOffset horizontalOffset = ViewportOffset.fixed(0.0); + addTearDown(horizontalOffset.dispose); + RenderSimpleBuilderTableViewport( - verticalOffset: ViewportOffset.fixed(0.0), + verticalOffset: verticalOffset, verticalAxisDirection: AxisDirection.left, - horizontalOffset: ViewportOffset.fixed(0.0), + horizontalOffset: horizontalOffset, horizontalAxisDirection: AxisDirection.down, delegate: builderDelegate, mainAxis: Axis.vertical, @@ -1622,10 +1652,15 @@ void main() { } ); addTearDown(delegate.dispose); + final ViewportOffset verticalOffset = ViewportOffset.fixed(10.0); + addTearDown(verticalOffset.dispose); + final ViewportOffset horizontalOffset = ViewportOffset.fixed(20.0); + addTearDown(horizontalOffset.dispose); + final RenderSimpleBuilderTableViewport renderViewport = RenderSimpleBuilderTableViewport( - verticalOffset: ViewportOffset.fixed(10.0), + verticalOffset: verticalOffset, verticalAxisDirection: AxisDirection.down, - horizontalOffset: ViewportOffset.fixed(20.0), + horizontalOffset: horizontalOffset, horizontalAxisDirection: AxisDirection.right, delegate: delegate, mainAxis: Axis.vertical,