Browse Source

reactivate do-while-loop detection

pull/728/merge
Siegfried Pammer 9 years ago
parent
commit
1dddb96e91
  1. 4
      ICSharpCode.Decompiler/CSharp/StatementBuilder.cs

4
ICSharpCode.Decompiler/CSharp/StatementBuilder.cs

@ -310,7 +310,7 @@ namespace ICSharpCode.Decompiler.CSharp
blockStatement = ConvertBlockContainer(blockStatement, container, container.Blocks.Skip(1), true); blockStatement = ConvertBlockContainer(blockStatement, container, container.Blocks.Skip(1), true);
} else { } else {
// do-while or while(true)-loop // do-while or while(true)-loop
/* if (container.EntryPoint.IncomingEdgeCount == 2) { if (container.EntryPoint.IncomingEdgeCount == 2) {
Block conditionBlock = FindDoWhileConditionBlock(container, out var condition); Block conditionBlock = FindDoWhileConditionBlock(container, out var condition);
if (conditionBlock != null) { if (conditionBlock != null) {
continueTarget = conditionBlock; continueTarget = conditionBlock;
@ -319,7 +319,7 @@ namespace ICSharpCode.Decompiler.CSharp
Condition = exprBuilder.TranslateCondition(condition) Condition = exprBuilder.TranslateCondition(condition)
}; };
} }
}*/ }
blockStatement = ConvertBlockContainer(container, true); blockStatement = ConvertBlockContainer(container, true);
Debug.Assert(continueCount < container.EntryPoint.IncomingEdgeCount); Debug.Assert(continueCount < container.EntryPoint.IncomingEdgeCount);
Debug.Assert(blockStatement.Statements.First() is LabelStatement); Debug.Assert(blockStatement.Statements.First() is LabelStatement);

Loading…
Cancel
Save