From cca842a9698463ae0b55471810167bdc8eab0d5e Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Fri, 6 Oct 2017 13:30:20 +0200 Subject: [PATCH] Fix #440: Ldarg operand is incorrect when parameter has no name --- ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs b/ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs index be7ed7dd8..481b2b5c5 100644 --- a/ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs +++ b/ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs @@ -343,9 +343,10 @@ namespace ICSharpCode.Decompiler.Disassembler ParameterReference paramRef = operand as ParameterReference; if (paramRef != null) { - if (string.IsNullOrEmpty(paramRef.Name)) - writer.WriteReference(paramRef.Index.ToString(), paramRef); - else + if (string.IsNullOrEmpty(paramRef.Name)) { + var paramDef = paramRef.Resolve(); + writer.WriteReference((paramDef == null ? paramRef.Index : paramDef.Sequence).ToString(), paramRef); + } else writer.WriteReference(Escape(paramRef.Name), paramRef); return; }