diff --git a/engine/src/flutter/lib/ui/painting/vertices.cc b/engine/src/flutter/lib/ui/painting/vertices.cc index 0ad5144251..24b1577a34 100644 --- a/engine/src/flutter/lib/ui/painting/vertices.cc +++ b/engine/src/flutter/lib/ui/painting/vertices.cc @@ -60,12 +60,23 @@ void Vertices::init(SkVertices::VertexMode vertex_mode, SkVertices::Builder builder(vertex_mode, positions.num_elements() / 2, indices.num_elements(), builderFlags); + + // positions are required for SkVertices::Builder + FXL_DCHECK(positions.data()); if (positions.data()) DecodePoints(positions, builder.positions()); - if (texture_coordinates.data()) + + if (texture_coordinates.data()) { + // SkVertices::Builder assumes equal numbers of elements + FXL_DCHECK(positions.num_elements() == texture_coordinates.num_elements()); DecodePoints(texture_coordinates, builder.texCoords()); - if (colors.data()) + } + if (colors.data()) { + // SkVertices::Builder assumes equal numbers of elements + FXL_DCHECK(positions.num_elements() == colors.num_elements()); DecodeInts(colors, builder.colors()); + } + if (indices.data()) DecodeInts(indices, builder.indices());