From b404bf3aa72977348a40dd300bf16722f51aaf72 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 30 Nov 2021 20:35:02 +0100 Subject: [PATCH] #2480: avoid crash if ILAst "cannot jump into block container" invariant is violated --- ICSharpCode.Decompiler/FlowAnalysis/DataFlowVisitor.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/FlowAnalysis/DataFlowVisitor.cs b/ICSharpCode.Decompiler/FlowAnalysis/DataFlowVisitor.cs index eb1f41d54..06d4a24d3 100644 --- a/ICSharpCode.Decompiler/FlowAnalysis/DataFlowVisitor.cs +++ b/ICSharpCode.Decompiler/FlowAnalysis/DataFlowVisitor.cs @@ -435,7 +435,14 @@ namespace ICSharpCode.Decompiler.FlowAnalysis targetState.JoinWith(branchState); 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"); + } } }