Users of ChangeNotifier should dispatch event of object creation in constructor. (#133210)

This commit is contained in:
Polina Cherkasova 2023-08-24 13:41:57 -07:00 committed by GitHub
parent 8175d693e5
commit afa37891cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 72 additions and 4 deletions

View File

@ -3355,6 +3355,13 @@ typedef _IndexWhereCallback = bool Function(_RouteEntry element);
/// Acts as a ChangeNotifier and notifies after its List of _RouteEntries is /// Acts as a ChangeNotifier and notifies after its List of _RouteEntries is
/// mutated. /// mutated.
class _History extends Iterable<_RouteEntry> with ChangeNotifier { class _History extends Iterable<_RouteEntry> with ChangeNotifier {
/// Creates an instance of [_History].
_History() {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
final List<_RouteEntry> _value = <_RouteEntry>[]; final List<_RouteEntry> _value = <_RouteEntry>[];
int indexWhere(_IndexWhereCallback test, [int start = 0]) { int indexWhere(_IndexWhereCallback test, [int start = 0]) {

View File

@ -1567,6 +1567,13 @@ class _SelectableRegionContainerDelegate extends MultiSelectableSelectionContain
/// This class optimize the selection update by keeping track of the /// This class optimize the selection update by keeping track of the
/// [Selectable]s that currently contain the selection edges. /// [Selectable]s that currently contain the selection edges.
abstract class MultiSelectableSelectionContainerDelegate extends SelectionContainerDelegate with ChangeNotifier { abstract class MultiSelectableSelectionContainerDelegate extends SelectionContainerDelegate with ChangeNotifier {
/// Creates an instance of [MultiSelectableSelectionContainerDelegate].
MultiSelectableSelectionContainerDelegate() {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
/// Gets the list of selectables this delegate is managing. /// Gets the list of selectables this delegate is managing.
List<Selectable> selectables = <Selectable>[]; List<Selectable> selectables = <Selectable>[];

View File

@ -2895,6 +2895,13 @@ class _WidgetInspectorState extends State<WidgetInspector>
/// Mutable selection state of the inspector. /// Mutable selection state of the inspector.
class InspectorSelection with ChangeNotifier { class InspectorSelection with ChangeNotifier {
/// Creates an instance of [InspectorSelection].
InspectorSelection() {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
/// Render objects that are candidates to be selected. /// Render objects that are candidates to be selected.
/// ///
/// Tools may wish to iterate through the list of candidates. /// Tools may wish to iterate through the list of candidates.

View File

@ -27,6 +27,12 @@ class A {
} }
class B extends A with ChangeNotifier { class B extends A with ChangeNotifier {
B() {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
@override @override
void test() { void test() {
notifyListeners(); notifyListeners();
@ -35,6 +41,12 @@ class B extends A with ChangeNotifier {
} }
class Counter with ChangeNotifier { class Counter with ChangeNotifier {
Counter() {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
int get value => _value; int get value => _value;
int _value = 0; int _value = 0;
set value(int value) { set value(int value) {

View File

@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart' show DragStartBehavior; import 'package:flutter/gestures.dart' show DragStartBehavior;
import 'package:flutter/rendering.dart'; import 'package:flutter/rendering.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
@ -631,6 +632,12 @@ class RenderSliverMultiBoxAdaptorAlt extends RenderSliver with
} }
class LeakCheckerHandle with ChangeNotifier { class LeakCheckerHandle with ChangeNotifier {
LeakCheckerHandle() {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
@override @override
bool get hasListeners => super.hasListeners; bool get hasListeners => super.hasListeners;
} }

View File

@ -338,7 +338,11 @@ class SimpleRouterDelegate extends RouterDelegate<RouteInformation> with ChangeN
required this.builder, required this.builder,
this.onPopRoute, this.onPopRoute,
this.reportConfiguration = false, this.reportConfiguration = false,
}); }) {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
RouteInformation get routeInformation => _routeInformation; RouteInformation get routeInformation => _routeInformation;
late RouteInformation _routeInformation; late RouteInformation _routeInformation;

View File

@ -90,6 +90,12 @@ class _TestRouteInformationParser extends RouteInformationParser<String> {
} }
class _TestRouterDelegate extends RouterDelegate<String> with ChangeNotifier { class _TestRouterDelegate extends RouterDelegate<String> with ChangeNotifier {
_TestRouterDelegate() {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
final List<String> newRoutePaths = <String>[]; final List<String> newRoutePaths = <String>[];
final List<String> restoredRoutePaths = <String>[]; final List<String> restoredRoutePaths = <String>[];
@ -128,6 +134,12 @@ class _TestRouterDelegate extends RouterDelegate<String> with ChangeNotifier {
} }
class _TestRouteInformationProvider extends RouteInformationProvider with ChangeNotifier { class _TestRouteInformationProvider extends RouteInformationProvider with ChangeNotifier {
_TestRouteInformationProvider() {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
@override @override
RouteInformation get value => _value; RouteInformation get value => _value;
RouteInformation _value = RouteInformation(uri: Uri.parse('/home')); RouteInformation _value = RouteInformation(uri: Uri.parse('/home'));

View File

@ -1633,7 +1633,11 @@ class SimpleRouterDelegate extends RouterDelegate<RouteInformation> with ChangeN
this.builder, this.builder,
this.onPopRoute, this.onPopRoute,
this.reportConfiguration = false, this.reportConfiguration = false,
}); }) {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
RouteInformation? get routeInformation => _routeInformation; RouteInformation? get routeInformation => _routeInformation;
RouteInformation? _routeInformation; RouteInformation? _routeInformation;
@ -1717,7 +1721,11 @@ class SimpleNavigatorRouterDelegate extends RouterDelegate<RouteInformation> wit
class SimpleRouteInformationProvider extends RouteInformationProvider with ChangeNotifier { class SimpleRouteInformationProvider extends RouteInformationProvider with ChangeNotifier {
SimpleRouteInformationProvider({ SimpleRouteInformationProvider({
this.onRouterReport, this.onRouterReport,
}); }) {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
RouterReportRouterInformation? onRouterReport; RouterReportRouterInformation? onRouterReport;
@ -1773,7 +1781,11 @@ class CompleterRouteInformationParser extends RouteInformationParser<RouteInform
class SimpleAsyncRouterDelegate extends RouterDelegate<RouteInformation> with ChangeNotifier { class SimpleAsyncRouterDelegate extends RouterDelegate<RouteInformation> with ChangeNotifier {
SimpleAsyncRouterDelegate({ SimpleAsyncRouterDelegate({
required this.builder, required this.builder,
}); }) {
if (kFlutterMemoryAllocationsEnabled) {
maybeDispatchObjectCreation();
}
}
RouteInformation? get routeInformation => _routeInformation; RouteInformation? get routeInformation => _routeInformation;
RouteInformation? _routeInformation; RouteInformation? _routeInformation;