summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ir-variable-scope-correction.cpp
diff options
context:
space:
mode:
authorJay Kwak <82421531+jkwak-work@users.noreply.github.com>2025-01-27 10:58:01 -0800
committerGitHub <noreply@github.com>2025-01-27 10:58:01 -0800
commitda3dc98f96cc7be2accb5c6f86aa6f6e5502bada (patch)
treea297ac4385f8f252a7cfc16870069fa308751d42 /source/slang/slang-ir-variable-scope-correction.cpp
parent1f1892d033ce2938518dc7065cf5c36631919270 (diff)
Fix an incorrect iteration with a workList (#6177)
* Fix an incorrect iteration with a workList We cannot modify workList while iterating it, because its type `List` is actually an array container. * Change based on the feedback * Use `Index` instead of `int` for for-loop index --------- Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'source/slang/slang-ir-variable-scope-correction.cpp')
-rw-r--r--source/slang/slang-ir-variable-scope-correction.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/source/slang/slang-ir-variable-scope-correction.cpp b/source/slang/slang-ir-variable-scope-correction.cpp
index 2994f4d3d..d32781c5e 100644
--- a/source/slang/slang-ir-variable-scope-correction.cpp
+++ b/source/slang/slang-ir-variable-scope-correction.cpp
@@ -121,11 +121,12 @@ void VariableScopeCorrectionContext::_processFunction(IRFunc* funcInst)
auto instAfterParam = funcInst->getFirstBlock()->getFirstOrdinaryInst();
- for (auto inst = workList.begin(); inst != workList.end(); inst++)
+ for (Index i = 0; i < workList.getCount(); i++)
{
- if (auto loopHeaderList = loopHeaderMap.tryGetValue(getBlock(*inst)))
+ auto inst = workList[i];
+ if (auto loopHeaderList = loopHeaderMap.tryGetValue(getBlock(inst)))
{
- _processInstruction(dominatorTree, instAfterParam, *inst, *loopHeaderList, workList);
+ _processInstruction(dominatorTree, instAfterParam, inst, *loopHeaderList, workList);
}
}
}