From d2b0840de3e6b9e3dabe2597976e463cecbacf9b Mon Sep 17 00:00:00 2001 From: liyuqian Date: Fri, 18 May 2018 10:32:56 -0700 Subject: [PATCH] Add debug asserts to using SkVertices::Builder (flutter/engine#5292) Fixes flutter/flutter#9226 --- engine/src/flutter/lib/ui/painting/vertices.cc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) 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());