From 0ac1330d590349dfc9d005e5fd303c814c642f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20K=C3=A4s?= Date: Wed, 3 Jun 2015 17:09:49 +0200 Subject: [PATCH] Fix for issue #612 AsyncDecompiler lost track of state machine variable when analyzing a try/catch block. --- ICSharpCode.Decompiler/ILAst/AsyncDecompiler.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/ILAst/AsyncDecompiler.cs b/ICSharpCode.Decompiler/ILAst/AsyncDecompiler.cs index 0c8bb8b99..c8a7f9b76 100644 --- a/ICSharpCode.Decompiler/ILAst/AsyncDecompiler.cs +++ b/ICSharpCode.Decompiler/ILAst/AsyncDecompiler.cs @@ -445,7 +445,7 @@ namespace ICSharpCode.Decompiler.ILAst var tryBody = tryCatchBlock.TryBlock.Body; if (tryBody.Count == 0) throw new SymbolicAnalysisFailedException(); - StateRangeAnalysis rangeAnalysis = new StateRangeAnalysis(tryBody[0], StateRangeAnalysisMode.AsyncMoveNext, stateField); + StateRangeAnalysis rangeAnalysis = new StateRangeAnalysis(tryBody[0], StateRangeAnalysisMode.AsyncMoveNext, stateField, cachedStateVar); int tryBodyLength = tryBody.Count; int posInTryBody = rangeAnalysis.AssignStateRanges(tryBody, tryBodyLength); rangeAnalysis.EnsureLabelAtPos(tryBody, ref posInTryBody, ref tryBodyLength);