Chromium Code Reviews| 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) { |
|
dogben
2016/07/11 20:05:33
nit: std::move
|
| + 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; |
| }; |