diff options
author | Ethan Nicholas <ethannicholas@google.com> | 2017-06-02 10:16:28 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-06-02 15:11:19 +0000 |
commit | b4dc419f0bc3140cb4e0f5a2fe4db46c4306df86 (patch) | |
tree | b47f7b59766c82d0a8c1edacf74e62650346738f /src/sksl/SkSLCFGGenerator.cpp | |
parent | 7e910df7f133e80293117bdd069ed25998d10f8c (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.cpp | 14 |
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: |