diff --git a/engine/src/flutter/lib/ui/painting/vertices.cc b/engine/src/flutter/lib/ui/painting/vertices.cc index 59201993826..96c8b83e589 100644 --- a/engine/src/flutter/lib/ui/painting/vertices.cc +++ b/engine/src/flutter/lib/ui/painting/vertices.cc @@ -67,7 +67,7 @@ bool Vertices::init(Dart_Handle vertices_handle, builder.store_colors(reinterpret_cast(colors.data())); } - if (indices.data()) { + if (indices.data() && indices.num_elements() > 0) { builder.store_indices(indices.data()); } diff --git a/engine/src/flutter/testing/dart/canvas_test.dart b/engine/src/flutter/testing/dart/canvas_test.dart index be788df6666..abc4e99a514 100644 --- a/engine/src/flutter/testing/dart/canvas_test.dart +++ b/engine/src/flutter/testing/dart/canvas_test.dart @@ -107,6 +107,10 @@ void testNoCrashes() { testCanvas((Canvas canvas) => canvas.skew(double.nan, double.nan)); testCanvas((Canvas canvas) => canvas.transform(Float64List(16))); testCanvas((Canvas canvas) => canvas.translate(double.nan, double.nan)); + testCanvas((Canvas canvas) => canvas.drawVertices(Vertices(VertexMode.triangles, [], + textureCoordinates: null, + colors: null, + indices: []), BlendMode.screen, paint)); }); }