Index: src/sksl/ir/SkSLInterfaceBlock.h |
diff --git a/src/sksl/ir/SkSLInterfaceBlock.h b/src/sksl/ir/SkSLInterfaceBlock.h |
index baedb5864c1f5e231e401aded5d72a16c683e99d..f1121ed707681a8ddbc841e784cc811754730be8 100644 |
--- a/src/sksl/ir/SkSLInterfaceBlock.h |
+++ b/src/sksl/ir/SkSLInterfaceBlock.h |
@@ -24,22 +24,24 @@ namespace SkSL { |
* At the IR level, this is represented by a single variable of struct type. |
*/ |
struct InterfaceBlock : public ProgramElement { |
- InterfaceBlock(Position position, std::shared_ptr<Variable> var) |
+ InterfaceBlock(Position position, const Variable& var, std::shared_ptr<SymbolTable> typeOwner) |
: INHERITED(position, kInterfaceBlock_Kind) |
- , fVariable(std::move(var)) { |
- ASSERT(fVariable->fType->kind() == Type::kStruct_Kind); |
+ , fVariable(std::move(var)) |
+ , fTypeOwner(typeOwner) { |
+ ASSERT(fVariable.fType.kind() == Type::kStruct_Kind); |
} |
std::string description() const override { |
- std::string result = fVariable->fModifiers.description() + fVariable->fName + " {\n"; |
- for (size_t i = 0; i < fVariable->fType->fields().size(); i++) { |
- result += fVariable->fType->fields()[i].description() + "\n"; |
+ std::string result = fVariable.fModifiers.description() + fVariable.fName + " {\n"; |
+ for (size_t i = 0; i < fVariable.fType.fields().size(); i++) { |
+ result += fVariable.fType.fields()[i].description() + "\n"; |
} |
result += "};"; |
return result; |
} |
- const std::shared_ptr<Variable> fVariable; |
+ const Variable& fVariable; |
+ const std::shared_ptr<SymbolTable> fTypeOwner; |
typedef ProgramElement INHERITED; |
}; |