Browse Source

Fix special case bug in WriteParameters

pull/1198/head
Siegfried Pammer 7 years ago
parent
commit
a826ad4043
  1. 5
      ICSharpCode.Decompiler/Disassembler/ReflectionDisassembler.cs

5
ICSharpCode.Decompiler/Disassembler/ReflectionDisassembler.cs

@ -877,6 +877,7 @@ namespace ICSharpCode.Decompiler.Disassembler @@ -877,6 +877,7 @@ namespace ICSharpCode.Decompiler.Disassembler
{
int parameterOffset = parameters.Length > signature.ParameterTypes.Length ? 1 : 0;
for (int i = 0; i < signature.ParameterTypes.Length; i++) {
if (i + parameterOffset < parameters.Length) {
var p = metadata.GetParameter(parameters[i + parameterOffset]);
if ((p.Attributes & ParameterAttributes.In) == ParameterAttributes.In)
output.Write("[in] ");
@ -891,6 +892,10 @@ namespace ICSharpCode.Decompiler.Disassembler @@ -891,6 +892,10 @@ namespace ICSharpCode.Decompiler.Disassembler
WriteMarshalInfo(metadata.GetBlobReader(md));
}
output.WriteDefinition(DisassemblerHelpers.Escape(metadata.GetString(p.Name)), p);
} else {
signature.ParameterTypes[i](ILNameSyntax.Signature);
output.Write(" ''");
}
if (i < signature.ParameterTypes.Length - 1)
output.Write(',');
output.WriteLine();

Loading…
Cancel
Save