Browse Source

#2480: avoid crash if ILAst "cannot jump into block container" invariant is violated

pull/2566/head
Daniel Grunwald 4 years ago
parent
commit
b404bf3aa7
  1. 9
      ICSharpCode.Decompiler/FlowAnalysis/DataFlowVisitor.cs

9
ICSharpCode.Decompiler/FlowAnalysis/DataFlowVisitor.cs

@ -435,7 +435,14 @@ namespace ICSharpCode.Decompiler.FlowAnalysis
targetState.JoinWith(branchState); targetState.JoinWith(branchState);
BlockContainer container = (BlockContainer)targetBlock.Parent; BlockContainer container = (BlockContainer)targetBlock.Parent;
workLists[container].Add(targetBlock.ChildIndex); if (workLists.TryGetValue(container, out var workList))
{
workList.Add(targetBlock.ChildIndex);
}
else
{
Debug.Fail("Failed to find target BlockContainer");
}
} }
} }

Loading…
Cancel
Save