@@ -8,6 +8,8 @@ import 'dart:ui' as ui show Codec, FrameInfo, Image;
8
8
import 'package:flutter/foundation.dart' ;
9
9
import 'package:flutter/scheduler.dart' ;
10
10
11
+ const String _flutterWidgetsLibrary = 'package:flutter/widgets.dart' ;
12
+
11
13
/// A [dart:ui.Image] object with its corresponding scale.
12
14
///
13
15
/// ImageInfo objects are used by [ImageStream] objects to represent the
@@ -437,6 +439,15 @@ class ImageStream with Diagnosticable {
437
439
class ImageStreamCompleterHandle {
438
440
ImageStreamCompleterHandle ._(ImageStreamCompleter this ._completer) {
439
441
_completer! ._keepAliveHandles += 1 ;
442
+ // TODO(polina-c): stop duplicating code across disposables
443
+ // https://github.com/flutter/flutter/issues/137435
444
+ if (kFlutterMemoryAllocationsEnabled) {
445
+ MemoryAllocations .instance.dispatchObjectCreated (
446
+ library: _flutterWidgetsLibrary,
447
+ className: '$ImageStreamCompleterHandle ' ,
448
+ object: this ,
449
+ );
450
+ }
440
451
}
441
452
442
453
ImageStreamCompleter ? _completer;
@@ -453,6 +464,11 @@ class ImageStreamCompleterHandle {
453
464
_completer! ._keepAliveHandles -= 1 ;
454
465
_completer! ._maybeDispose ();
455
466
_completer = null ;
467
+ // TODO(polina-c): stop duplicating code across disposables
468
+ // https://github.com/flutter/flutter/issues/137435
469
+ if (kFlutterMemoryAllocationsEnabled) {
470
+ MemoryAllocations .instance.dispatchObjectDisposed (object: this );
471
+ }
456
472
}
457
473
}
458
474
0 commit comments