aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/ir/SkSLFloatLiteral.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sksl/ir/SkSLFloatLiteral.h')
-rw-r--r--src/sksl/ir/SkSLFloatLiteral.h13
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;