diff --git a/lib/web_ui/lib/src/engine/canvaskit/text.dart b/lib/web_ui/lib/src/engine/canvaskit/text.dart index 433bcf9039a51..3a5efc1fb50f3 100644 --- a/lib/web_ui/lib/src/engine/canvaskit/text.dart +++ b/lib/web_ui/lib/src/engine/canvaskit/text.dart @@ -657,7 +657,8 @@ class CkParagraph extends SkiaObject implements ui.Paragraph { @override void delete() { - _skParagraph!.delete(); + _skParagraph?.delete(); + _skParagraph = null; } @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