Browse Source

Fix BadImageFormatException when accessing standalone signatures.

pull/1716/head
Siegfried Pammer 6 years ago
parent
commit
2b7b040dd9
  1. 8
      ICSharpCode.Decompiler/IL/InstructionOutputExtensions.cs

8
ICSharpCode.Decompiler/IL/InstructionOutputExtensions.cs

@ -253,16 +253,16 @@ namespace ICSharpCode.Decompiler.IL
break; break;
case HandleKind.StandaloneSignature: case HandleKind.StandaloneSignature:
var standaloneSig = metadata.GetStandaloneSignature((StandaloneSignatureHandle)entity); var standaloneSig = metadata.GetStandaloneSignature((StandaloneSignatureHandle)entity);
switch (standaloneSig.GetKind()) { var header = metadata.GetBlobReader(standaloneSig.Signature).ReadSignatureHeader();
case StandaloneSignatureKind.Method: switch (header.Kind) {
case SignatureKind.Method:
methodSignature = standaloneSig.DecodeMethodSignature(new DisassemblerSignatureTypeProvider(module, output), genericContext); methodSignature = standaloneSig.DecodeMethodSignature(new DisassemblerSignatureTypeProvider(module, output), genericContext);
WriteSignatureHeader(output, methodSignature); WriteSignatureHeader(output, methodSignature);
methodSignature.ReturnType(ILNameSyntax.SignatureNoNamedTypeParameters); methodSignature.ReturnType(ILNameSyntax.SignatureNoNamedTypeParameters);
WriteParameterList(output, methodSignature); WriteParameterList(output, methodSignature);
break; break;
case StandaloneSignatureKind.LocalVariables:
default: default:
output.Write($"@{MetadataTokens.GetToken(entity):X8} /* signature {standaloneSig.GetKind()} */"); output.Write($"@{MetadataTokens.GetToken(entity):X8} /* signature {header.Kind} */");
break; break;
} }
break; break;

Loading…
Cancel
Save