diff options
Diffstat (limited to 'src/sksl/ir/SkSLFloatLiteral.h')
-rw-r--r-- | src/sksl/ir/SkSLFloatLiteral.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/sksl/ir/SkSLFloatLiteral.h b/src/sksl/ir/SkSLFloatLiteral.h index 82c15c032b..e995e4c6e1 100644 --- a/src/sksl/ir/SkSLFloatLiteral.h +++ b/src/sksl/ir/SkSLFloatLiteral.h @@ -17,9 +17,12 @@ namespace SkSL { * A literal floating point number. */ struct FloatLiteral : public Expression { - FloatLiteral(const Context& context, int offset, double value, - const Type* type = nullptr) - : INHERITED(offset, kFloatLiteral_Kind, type ? *type : *context.fFloat_Type) + FloatLiteral(const Context& context, int offset, double value) + : INHERITED(offset, kFloatLiteral_Kind, *context.fFloat_Type) + , fValue(value) {} + + FloatLiteral(int offset, double value, const Type* type) + : INHERITED(offset, kFloatLiteral_Kind, *type) , fValue(value) {} String description() const override { @@ -43,6 +46,10 @@ struct FloatLiteral : public Expression { return fValue; } + std::unique_ptr<Expression> clone() const override { + return std::unique_ptr<Expression>(new FloatLiteral(fOffset, fValue, &fType)); + } + const double fValue; typedef Expression INHERITED; |