aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/SkSLCFGGenerator.cpp
diff options
context:
space:
mode:
authorGravatar Ethan Nicholas <ethannicholas@google.com>2017-06-02 10:16:28 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-06-02 15:11:19 +0000
commitb4dc419f0bc3140cb4e0f5a2fe4db46c4306df86 (patch)
treeb47f7b59766c82d0a8c1edacf74e62650346738f /src/sksl/SkSLCFGGenerator.cpp
parent7e910df7f133e80293117bdd069ed25998d10f8c (diff)
Re-land "Fixed an issue with sksl variable declarations"
This reverts commit affa6a3da87e9ea85f1d4fe3137b5bccbbc56f92. Bug: skia: Change-Id: I5864830e31acbf786f3ea7ae91f42f10aae6d855 Reviewed-on: https://skia-review.googlesource.com/18459 Reviewed-by: Ethan Nicholas <ethannicholas@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/sksl/SkSLCFGGenerator.cpp')
-rw-r--r--src/sksl/SkSLCFGGenerator.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/sksl/SkSLCFGGenerator.cpp b/src/sksl/SkSLCFGGenerator.cpp
index 71bd37f39a..2fe049d9bd 100644
--- a/src/sksl/SkSLCFGGenerator.cpp
+++ b/src/sksl/SkSLCFGGenerator.cpp
@@ -465,13 +465,17 @@ void CFGGenerator::addStatement(CFG& cfg, std::unique_ptr<Statement>* s) {
}
case Statement::kVarDeclarations_Kind: {
VarDeclarationsStatement& decls = ((VarDeclarationsStatement&) **s);
- for (auto& vd : decls.fDeclaration->fVars) {
- if (vd->fValue) {
- this->addExpression(cfg, &vd->fValue, true);
+ for (auto& stmt : decls.fDeclaration->fVars) {
+ if (stmt->fKind == Statement::kNop_Kind) {
+ continue;
}
+ VarDeclaration& vd = (VarDeclaration&) *stmt;
+ if (vd.fValue) {
+ this->addExpression(cfg, &vd.fValue, true);
+ }
+ cfg.fBlocks[cfg.fCurrent].fNodes.push_back({ BasicBlock::Node::kStatement_Kind,
+ false, nullptr, &stmt });
}
- cfg.fBlocks[cfg.fCurrent].fNodes.push_back({ BasicBlock::Node::kStatement_Kind, false,
- nullptr, s });
break;
}
case Statement::kDiscard_Kind: