From 3f090158e1d7733242dcb8da05ca3d4d312bfb9d Mon Sep 17 00:00:00 2001 From: Dan Field Date: Tue, 30 Aug 2022 16:20:07 -0700 Subject: [PATCH 1/2] fix null access for CkParagraph.dispose --- lib/web_ui/lib/src/engine/canvaskit/text.dart | 2 +- lib/web_ui/test/canvaskit/canvaskit_api_test.dart | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/web_ui/lib/src/engine/canvaskit/text.dart b/lib/web_ui/lib/src/engine/canvaskit/text.dart index 433bcf9039a51..5b3cca64a08e4 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/text.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/text.dart @@ -657,7 +657,7 @@ class CkParagraph extends SkiaObject implements ui.Paragraph { @override void delete() { - _skParagraph!.delete(); + _skParagraph?.delete(); } @override diff --git a/lib/web_ui/test/canvaskit/canvaskit_api_test.dart b/lib/web_ui/test/canvaskit/canvaskit_api_test.dart index bc8dbf9beb540..ce4bdad09a9ac 100644 --- a/lib/web_ui/test/canvaskit/canvaskit_api_test.dart +++ b/lib/web_ui/test/canvaskit/canvaskit_api_test.dart @@ -1342,6 +1342,18 @@ void _canvasTests() { ); }); + test('Paragraph dispose', () { + final CkParagraphBuilder builder = CkParagraphBuilder( + CkParagraphStyle(), + ); + builder.addText('Hello'); + final CkParagraph paragraph = builder.build(); + + paragraph.delete(); + paragraph.dispose(); + expect(paragraph.debugDisposed, true); + }); + test('toImage.toByteData', () async { // Pretend that FinalizationRegistry is supported, so we can run this // test in older browsers (the test will use a TestCollector instead of From e542feda8c5df62f67ba3ea0ced8b7581b4ddf1d Mon Sep 17 00:00:00 2001 From: Dan Field Date: Tue, 30 Aug 2022 20:05:33 -0700 Subject: [PATCH 2/2] null after delete --- lib/web_ui/lib/src/engine/canvaskit/text.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/web_ui/lib/src/engine/canvaskit/text.dart b/lib/web_ui/lib/src/engine/canvaskit/text.dart index 5b3cca64a08e4..3a5efc1fb50f3 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/text.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/text.dart @@ -658,6 +658,7 @@ class CkParagraph extends SkiaObject implements ui.Paragraph { @override void delete() { _skParagraph?.delete(); + _skParagraph = null; } @override