Browse Source

ILAst: show if block container is a loop container.

pull/909/merge
Daniel Grunwald 8 years ago
parent
commit
f21d48317c
  1. 2
      ICSharpCode.Decompiler/IL/Instructions/Block.cs
  2. 6
      ICSharpCode.Decompiler/IL/Instructions/BlockContainer.cs

2
ICSharpCode.Decompiler/IL/Instructions/Block.cs

@ -135,7 +135,7 @@ namespace ICSharpCode.Decompiler.IL
output.Write(" (incoming: {0})", IncomingEdgeCount); output.Write(" (incoming: {0})", IncomingEdgeCount);
output.Write(' '); output.Write(' ');
output.MarkFoldStart("{...}"); output.MarkFoldStart("{...}");
output.WriteLine(" {"); output.WriteLine("{");
output.Indent(); output.Indent();
foreach (var inst in Instructions) { foreach (var inst in Instructions) {
inst.WriteTo(output, options); inst.WriteTo(output, options);

6
ICSharpCode.Decompiler/IL/Instructions/BlockContainer.cs

@ -117,6 +117,12 @@ namespace ICSharpCode.Decompiler.IL
{ {
output.WriteDefinition("BlockContainer", this); output.WriteDefinition("BlockContainer", this);
output.Write(' '); output.Write(' ');
if (entryPoint.IncomingEdgeCount > 1) {
output.Write("(loop) ");
}
if (entryPoint.Instructions.Count == 1 && entryPoint.Instructions[0] is SwitchInstruction) {
output.Write("(switch) ");
}
output.MarkFoldStart("{...}"); output.MarkFoldStart("{...}");
output.WriteLine("{"); output.WriteLine("{");
output.Indent(); output.Indent();

Loading…
Cancel
Save