Browse Source

Fix #1841: Not properly reusing names from PDB

pull/1843/head
Siegfried Pammer 6 years ago
parent
commit
a653b8b566
  1. 8
      ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs

8
ICSharpCode.Decompiler/IL/Transforms/AssignVariableNames.cs

@ -140,7 +140,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -140,7 +140,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
// remove unused variables before assigning names
function.Variables.RemoveDead();
int numDisplayClassLocals = 0;
foreach (var v in function.Variables) {
foreach (var v in function.Variables.OrderBy(v => v.Name)) {
switch (v.Kind) {
case VariableKind.Parameter: // ignore
break;
@ -243,8 +243,12 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -243,8 +243,12 @@ namespace ICSharpCode.Decompiler.IL.Transforms
reservedVariableNames.Add(nameWithoutDigits, number - 1);
}
int count = ++reservedVariableNames[nameWithoutDigits];
string nameWithDigits = nameWithoutDigits + count.ToString();
if (oldVariableName == nameWithDigits) {
return oldVariableName;
}
if (count != 1) {
return nameWithoutDigits + count.ToString();
return nameWithDigits;
} else {
return nameWithoutDigits;
}

Loading…
Cancel
Save