From a67e03a61cb29199ba06534c4792a3d0947be0f4 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Thu, 13 Aug 2020 11:06:02 -0700 Subject: [PATCH] Do not access members after calling ClearDartWrapper (flutter/engine#20465) --- engine/src/flutter/lib/ui/painting/canvas.cc | 2 +- engine/src/flutter/lib/ui/painting/image.cc | 2 +- engine/src/flutter/lib/ui/painting/picture.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/engine/src/flutter/lib/ui/painting/canvas.cc b/engine/src/flutter/lib/ui/painting/canvas.cc index 129226d36a4..01e6f5cf96a 100644 --- a/engine/src/flutter/lib/ui/painting/canvas.cc +++ b/engine/src/flutter/lib/ui/painting/canvas.cc @@ -486,10 +486,10 @@ void Canvas::drawShadow(const CanvasPath* path, } void Canvas::Invalidate() { + canvas_ = nullptr; if (dart_wrapper()) { ClearDartWrapper(); } - canvas_ = nullptr; } } // namespace flutter diff --git a/engine/src/flutter/lib/ui/painting/image.cc b/engine/src/flutter/lib/ui/painting/image.cc index 126205530fa..7da7c0ad029 100644 --- a/engine/src/flutter/lib/ui/painting/image.cc +++ b/engine/src/flutter/lib/ui/painting/image.cc @@ -37,8 +37,8 @@ Dart_Handle CanvasImage::toByteData(int format, Dart_Handle callback) { } void CanvasImage::dispose() { - ClearDartWrapper(); image_.reset(); + ClearDartWrapper(); } size_t CanvasImage::GetAllocationSize() const { diff --git a/engine/src/flutter/lib/ui/painting/picture.cc b/engine/src/flutter/lib/ui/painting/picture.cc index 48dd11226cf..1285a6b0921 100644 --- a/engine/src/flutter/lib/ui/painting/picture.cc +++ b/engine/src/flutter/lib/ui/painting/picture.cc @@ -56,8 +56,8 @@ Dart_Handle Picture::toImage(uint32_t width, } void Picture::dispose() { - ClearDartWrapper(); picture_.reset(); + ClearDartWrapper(); } size_t Picture::GetAllocationSize() const {