aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/ir/SkSLVariableReference.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sksl/ir/SkSLVariableReference.h')
-rw-r--r--src/sksl/ir/SkSLVariableReference.h22
1 files changed, 6 insertions, 16 deletions
diff --git a/src/sksl/ir/SkSLVariableReference.h b/src/sksl/ir/SkSLVariableReference.h
index 75b7f3dcd4..fecb04e2e5 100644
--- a/src/sksl/ir/SkSLVariableReference.h
+++ b/src/sksl/ir/SkSLVariableReference.h
@@ -38,7 +38,7 @@ struct VariableReference : public Expression {
}
}
- ~VariableReference() override {
+ virtual ~VariableReference() override {
if (fRefKind != kWrite_RefKind) {
fVariable.fReadCount--;
}
@@ -64,19 +64,13 @@ struct VariableReference : public Expression {
fRefKind = refKind;
}
- bool hasSideEffects() const override {
- return false;
- }
-
SkString description() const override {
return fVariable.fName;
}
- std::unique_ptr<Expression> constantPropagate(const IRGenerator& irGenerator,
- const DefinitionMap& definitions) override {
- if (fRefKind != kRead_RefKind) {
- return nullptr;
- }
+ virtual std::unique_ptr<Expression> constantPropagate(
+ const IRGenerator& irGenerator,
+ const DefinitionMap& definitions) override {
auto exprIter = definitions.find(&fVariable);
if (exprIter != definitions.end() && exprIter->second) {
const Expression* expr = exprIter->second->get();
@@ -91,11 +85,6 @@ struct VariableReference : public Expression {
irGenerator.fContext,
Position(),
((FloatLiteral*) expr)->fValue));
- case Expression::kBoolLiteral_Kind:
- return std::unique_ptr<Expression>(new BoolLiteral(
- irGenerator.fContext,
- Position(),
- ((BoolLiteral*) expr)->fValue));
default:
break;
}
@@ -104,9 +93,10 @@ struct VariableReference : public Expression {
}
const Variable& fVariable;
- RefKind fRefKind;
private:
+ RefKind fRefKind;
+
typedef Expression INHERITED;
};