From ea01c1603bca0ccaf0368524dc35eab86d1da187 Mon Sep 17 00:00:00 2001 From: Harry Terkelsen Date: Mon, 10 Feb 2020 13:51:01 -0800 Subject: [PATCH] Clear frame references at the end of every CanvasKit frame --- lib/web_ui/lib/src/engine/compositor/rasterizer.dart | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/web_ui/lib/src/engine/compositor/rasterizer.dart b/lib/web_ui/lib/src/engine/compositor/rasterizer.dart index c5246e7d03644..f165e45fa6d72 100644 --- a/lib/web_ui/lib/src/engine/compositor/rasterizer.dart +++ b/lib/web_ui/lib/src/engine/compositor/rasterizer.dart @@ -37,7 +37,8 @@ class Rasterizer { final SurfaceFrame frame = surface.acquireFrame(layerTree.frameSize); surface.viewEmbedder.frameSize = layerTree.frameSize; final SkCanvas canvas = frame.skiaCanvas; - final Frame compositorFrame = context.acquireFrame(canvas, surface.viewEmbedder); + final Frame compositorFrame = + context.acquireFrame(canvas, surface.viewEmbedder); compositorFrame.raster(layerTree, ignoreRasterCache: true); surface.addToScene(); @@ -57,5 +58,9 @@ class Rasterizer { final ui.VoidCallback callback = _postFrameCallbacks[i]; callback(); } + for (int i = 0; i < _frameReferences.length; i++) { + _frameReferences[i].value = null; + } + _frameReferences.clear(); } }