Browse Source

Merge remote-tracking branch 'upstream/master' into fix-proxy-calls

pull/903/head
mohe2015 9 years ago
parent
commit
f969a156e7
  1. 8
      ICSharpCode.Decompiler/IL/BlockBuilder.cs

8
ICSharpCode.Decompiler/IL/BlockBuilder.cs

@ -175,6 +175,12 @@ namespace ICSharpCode.Decompiler.IL
cancellationToken.ThrowIfCancellationRequested(); cancellationToken.ThrowIfCancellationRequested();
Debug.Assert(branch.TargetBlock == null); Debug.Assert(branch.TargetBlock == null);
branch.TargetBlock = FindBranchTarget(branch.TargetILOffset); branch.TargetBlock = FindBranchTarget(branch.TargetILOffset);
if (branch.TargetBlock == null) {
branch.ReplaceWith(new InvalidBranch("Could not find block for branch target "
+ Disassembler.DisassemblerHelpers.OffsetToString(branch.TargetILOffset)) {
ILRange = branch.ILRange
});
}
break; break;
case Leave leave: case Leave leave:
// ret (in void method) = leave(mainContainer) // ret (in void method) = leave(mainContainer)
@ -210,7 +216,7 @@ namespace ICSharpCode.Decompiler.IL
return block; return block;
} }
} }
throw new InvalidOperationException("Could not find block for branch target"); return null;
} }
} }
} }

Loading…
Cancel
Save