From c7d10fdc4345d1fa20541c3fa1a8235654392103 Mon Sep 17 00:00:00 2001 From: jonahwilliams Date: Wed, 27 Mar 2024 09:39:37 -0700 Subject: [PATCH 1/2] [Impeller] add missing null check. --- shell/gpu/gpu_surface_metal_impeller.mm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/shell/gpu/gpu_surface_metal_impeller.mm b/shell/gpu/gpu_surface_metal_impeller.mm index c9c020fd1717b..7ec98fec62c92 100644 --- a/shell/gpu/gpu_surface_metal_impeller.mm +++ b/shell/gpu/gpu_surface_metal_impeller.mm @@ -150,6 +150,10 @@ auto surface = impeller::SurfaceMTL::MakeFromMetalLayerDrawable(renderer->GetContext(), drawable, clip_rect); + if (!surface) { + return false; + } + if (clip_rect && clip_rect->IsEmpty()) { return surface->Present(); } From c789114659647616fca15d000f1be637829f72d0 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Wed, 27 Mar 2024 10:01:14 -0700 Subject: [PATCH 2/2] Update gpu_surface_metal_impeller.mm --- shell/gpu/gpu_surface_metal_impeller.mm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shell/gpu/gpu_surface_metal_impeller.mm b/shell/gpu/gpu_surface_metal_impeller.mm index 7ec98fec62c92..509383130b109 100644 --- a/shell/gpu/gpu_surface_metal_impeller.mm +++ b/shell/gpu/gpu_surface_metal_impeller.mm @@ -150,6 +150,8 @@ auto surface = impeller::SurfaceMTL::MakeFromMetalLayerDrawable(renderer->GetContext(), drawable, clip_rect); + // The surface may be null if we failed to allocate the onscreen render target + // due to running out of memory. if (!surface) { return false; }