Browse Source

Fix #440: Ldarg operand is incorrect when parameter has no name

pull/904/head
Siegfried Pammer 8 years ago
parent
commit
cca842a969
  1. 7
      ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs

7
ICSharpCode.Decompiler/Disassembler/DisassemblerHelpers.cs

@ -343,9 +343,10 @@ namespace ICSharpCode.Decompiler.Disassembler
ParameterReference paramRef = operand as ParameterReference; ParameterReference paramRef = operand as ParameterReference;
if (paramRef != null) { if (paramRef != null) {
if (string.IsNullOrEmpty(paramRef.Name)) if (string.IsNullOrEmpty(paramRef.Name)) {
writer.WriteReference(paramRef.Index.ToString(), paramRef); var paramDef = paramRef.Resolve();
else writer.WriteReference((paramDef == null ? paramRef.Index : paramDef.Sequence).ToString(), paramRef);
} else
writer.WriteReference(Escape(paramRef.Name), paramRef); writer.WriteReference(Escape(paramRef.Name), paramRef);
return; return;
} }

Loading…
Cancel
Save