@@ -1007,7 +1007,12 @@ class CurrentIndexCubit extends Cubit<CurrentIndex> {
10071007 ).paint (canvas, size);
10081008
10091009 final picture = recorder.endRecording ();
1010- final newImage = await picture.toImage (imageWidth, imageHeight);
1010+ ui.Image newImage;
1011+ try {
1012+ newImage = await picture.toImage (imageWidth, imageHeight);
1013+ } finally {
1014+ picture.dispose ();
1015+ }
10111016
10121017 var belowLayerImage = cameraViewport.belowLayerImage;
10131018 var aboveLayerImage = cameraViewport.aboveLayerImage;
@@ -1062,12 +1067,19 @@ class CurrentIndexCubit extends Cubit<CurrentIndex> {
10621067 renderBaked: false ,
10631068 ).paint (aboveLayerCanvas, size);
10641069
1065- final result = await Future .wait ([
1066- belowLayerRecorder.endRecording ().toImage (imageWidth, imageHeight),
1067- aboveLayerRecorder.endRecording ().toImage (imageWidth, imageHeight),
1068- ]);
1069- belowLayerImage = result[0 ];
1070- aboveLayerImage = result[1 ];
1070+ final belowPicture = belowLayerRecorder.endRecording ();
1071+ final abovePicture = aboveLayerRecorder.endRecording ();
1072+ try {
1073+ final result = await Future .wait ([
1074+ belowPicture.toImage (imageWidth, imageHeight),
1075+ abovePicture.toImage (imageWidth, imageHeight),
1076+ ]);
1077+ belowLayerImage = result[0 ];
1078+ aboveLayerImage = result[1 ];
1079+ } finally {
1080+ belowPicture.dispose ();
1081+ abovePicture.dispose ();
1082+ }
10711083 }
10721084
10731085 final newlyUnbaked =
@@ -1133,8 +1145,16 @@ class CurrentIndexCubit extends Cubit<CurrentIndex> {
11331145 );
11341146 painter.paint (canvas, Size (realWidth.toDouble (), realHeight.toDouble ()));
11351147 final picture = recorder.endRecording ();
1136- final image = await picture.toImage (realWidth, realHeight);
1137- return await image.toByteData (format: ui.ImageByteFormat .png);
1148+ ui.Image ? image;
1149+ ByteData ? bytes;
1150+ try {
1151+ image = await picture.toImage (realWidth, realHeight);
1152+ bytes = await image.toByteData (format: ui.ImageByteFormat .png);
1153+ } finally {
1154+ image? .dispose ();
1155+ picture.dispose ();
1156+ }
1157+ return bytes;
11381158 }
11391159
11401160 XmlDocument renderSVG (
0 commit comments