From 02c9c34039d6ac67fa538eedc8a41924546bf898 Mon Sep 17 00:00:00 2001 From: ferhatb Date: Tue, 25 Feb 2020 11:00:39 -0800 Subject: [PATCH] Evict BitmapCanvas(s) from cache when canvas allocation fails --- lib/web_ui/lib/src/engine/canvas_pool.dart | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/web_ui/lib/src/engine/canvas_pool.dart b/lib/web_ui/lib/src/engine/canvas_pool.dart index 1d3a289ebe98b..fefcf14b13bfb 100644 --- a/lib/web_ui/lib/src/engine/canvas_pool.dart +++ b/lib/web_ui/lib/src/engine/canvas_pool.dart @@ -95,6 +95,14 @@ class _CanvasPool extends _SaveStackTracking { width: _widthInBitmapPixels, height: _heightInBitmapPixels, ); + if (_canvas == null) { + // Evict BitmapCanvas(s) and retry. + _reduceCanvasMemoryUsage(); + _canvas = html.CanvasElement( + width: _widthInBitmapPixels, + height: _heightInBitmapPixels, + ); + } _canvas.style ..position = 'absolute' ..width = '${cssWidth}px'