From 2b7b040dd92e0624e971884d1d157057ab23f0be Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 28 Dec 2019 16:13:45 +0100 Subject: [PATCH] Fix BadImageFormatException when accessing standalone signatures. --- ICSharpCode.Decompiler/IL/InstructionOutputExtensions.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ICSharpCode.Decompiler/IL/InstructionOutputExtensions.cs b/ICSharpCode.Decompiler/IL/InstructionOutputExtensions.cs index 697389dd1..6ae5f8e62 100644 --- a/ICSharpCode.Decompiler/IL/InstructionOutputExtensions.cs +++ b/ICSharpCode.Decompiler/IL/InstructionOutputExtensions.cs @@ -253,16 +253,16 @@ namespace ICSharpCode.Decompiler.IL break; case HandleKind.StandaloneSignature: var standaloneSig = metadata.GetStandaloneSignature((StandaloneSignatureHandle)entity); - switch (standaloneSig.GetKind()) { - case StandaloneSignatureKind.Method: + var header = metadata.GetBlobReader(standaloneSig.Signature).ReadSignatureHeader(); + switch (header.Kind) { + case SignatureKind.Method: methodSignature = standaloneSig.DecodeMethodSignature(new DisassemblerSignatureTypeProvider(module, output), genericContext); WriteSignatureHeader(output, methodSignature); methodSignature.ReturnType(ILNameSyntax.SignatureNoNamedTypeParameters); WriteParameterList(output, methodSignature); break; - case StandaloneSignatureKind.LocalVariables: default: - output.Write($"@{MetadataTokens.GetToken(entity):X8} /* signature {standaloneSig.GetKind()} */"); + output.Write($"@{MetadataTokens.GetToken(entity):X8} /* signature {header.Kind} */"); break; } break;