summaryrefslogtreecommitdiff
path: root/highlevelilinstruction.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2024-06-14 11:43:31 -0400
committerRusty Wagner <rusty.wagner@gmail.com>2024-06-19 11:24:16 -0400
commit7518e76fb706fe036fb4579f21401df6e091f9b0 (patch)
tree2b81e0827c8493457e92249734425f9d7f061933 /highlevelilinstruction.cpp
parentda698e7e15231ea1af75aab36cd87d03ae842424 (diff)
Fix double traversal of HLIL switch case contents when not in AST form
Diffstat (limited to 'highlevelilinstruction.cpp')
-rw-r--r--highlevelilinstruction.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/highlevelilinstruction.cpp b/highlevelilinstruction.cpp
index 3626dd54..c27e1251 100644
--- a/highlevelilinstruction.cpp
+++ b/highlevelilinstruction.cpp
@@ -1103,7 +1103,8 @@ void HighLevelILInstruction::CollectSubExprs(stack<size_t>& toProcess) const
toProcess.push(GetConditionExpr<HLIL_SWITCH>().exprIndex);
break;
case HLIL_CASE:
- toProcess.push(GetTrueExpr<HLIL_CASE>().exprIndex);
+ if (ast)
+ toProcess.push(GetTrueExpr<HLIL_CASE>().exprIndex);
exprs = GetValueExprs<HLIL_CASE>();
for (auto i = exprs.rbegin(); i != exprs.rend(); ++i)
toProcess.push(i->exprIndex);