Browse Source

Fixed bug that caused yield-return analysis to fail sometimes.

pull/129/head
Daniel Grunwald 14 years ago
parent
commit
78eea4fddf
  1. 3
      ICSharpCode.Decompiler/ILAst/YieldReturnDecompiler.cs

3
ICSharpCode.Decompiler/ILAst/YieldReturnDecompiler.cs

@ -466,7 +466,10 @@ namespace ICSharpCode.Decompiler.ILAst
if (!forDispose || tryFinally.CatchBlocks.Count != 0 || tryFinally.FaultBlock != null || tryFinally.FinallyBlock == null) if (!forDispose || tryFinally.CatchBlocks.Count != 0 || tryFinally.FaultBlock != null || tryFinally.FinallyBlock == null)
throw new YieldAnalysisFailedException(); throw new YieldAnalysisFailedException();
ranges[tryFinally.TryBlock].UnionWith(nodeRange); ranges[tryFinally.TryBlock].UnionWith(nodeRange);
if (tryFinally.TryBlock.Body.Count != 0) {
ranges[tryFinally.TryBlock.Body[0]].UnionWith(nodeRange);
AssignStateRanges(tryFinally.TryBlock.Body, tryFinally.TryBlock.Body.Count, forDispose); AssignStateRanges(tryFinally.TryBlock.Body, tryFinally.TryBlock.Body.Count, forDispose);
}
continue; continue;
} }

Loading…
Cancel
Save