Index: src/sksl/ir/SkSLIndexExpression.h |
diff --git a/src/sksl/ir/SkSLIndexExpression.h b/src/sksl/ir/SkSLIndexExpression.h |
index f5b0d09c2cbffe428aacb844ed78bb5ce20a0a02..ea9af3d8973628d25b1960d532cb696d58c47321 100644 |
--- a/src/sksl/ir/SkSLIndexExpression.h |
+++ b/src/sksl/ir/SkSLIndexExpression.h |
@@ -19,7 +19,7 @@ namespace SkSL { |
static const Type& index_type(const Context& context, const Type& type) { |
if (type.kind() == Type::kMatrix_Kind) { |
if (type.componentType() == *context.fFloat_Type) { |
- switch (type.columns()) { |
+ switch (type.rows()) { |
case 2: return *context.fVec2_Type; |
case 3: return *context.fVec3_Type; |
case 4: return *context.fVec4_Type; |
@@ -27,7 +27,7 @@ static const Type& index_type(const Context& context, const Type& type) { |
} |
} else { |
ASSERT(type.componentType() == *context.fDouble_Type); |
- switch (type.columns()) { |
+ switch (type.rows()) { |
case 2: return *context.fDVec2_Type; |
case 3: return *context.fDVec3_Type; |
case 4: return *context.fDVec4_Type; |
@@ -47,7 +47,7 @@ struct IndexExpression : public Expression { |
: INHERITED(base->fPosition, kIndex_Kind, index_type(context, base->fType)) |
, fBase(std::move(base)) |
, fIndex(std::move(index)) { |
- ASSERT(fIndex->fType == *context.fInt_Type); |
+ ASSERT(fIndex->fType == *context.fInt_Type || fIndex->fType == *context.fUInt_Type); |
} |
std::string description() const override { |