diff options
Diffstat (limited to 'src/sksl/ir/SkSLSwitchCase.h')
-rw-r--r-- | src/sksl/ir/SkSLSwitchCase.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/sksl/ir/SkSLSwitchCase.h b/src/sksl/ir/SkSLSwitchCase.h index c33224bdbb..b9e52180f3 100644 --- a/src/sksl/ir/SkSLSwitchCase.h +++ b/src/sksl/ir/SkSLSwitchCase.h @@ -23,6 +23,16 @@ struct SwitchCase : public Statement { , fValue(std::move(value)) , fStatements(std::move(statements)) {} + std::unique_ptr<Statement> clone() const override { + std::vector<std::unique_ptr<Statement>> cloned; + for (const auto& s : fStatements) { + cloned.push_back(s->clone()); + } + return std::unique_ptr<Statement>(new SwitchCase(fOffset, + fValue ? fValue->clone() : nullptr, + std::move(cloned))); + } + String description() const override { String result; if (fValue) { |