From 8225f79f3cd0f9cbc813dcd6e98c5c48433a1d1c Mon Sep 17 00:00:00 2001 From: de4dot Date: Sun, 13 Jan 2013 20:57:15 +0100 Subject: [PATCH] Use a stable sort --- de4dot.code/renamer/ResourceRenamer.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/de4dot.code/renamer/ResourceRenamer.cs b/de4dot.code/renamer/ResourceRenamer.cs index 2c3c9b9e..e99809b0 100644 --- a/de4dot.code/renamer/ResourceRenamer.cs +++ b/de4dot.code/renamer/ResourceRenamer.cs @@ -36,7 +36,11 @@ namespace de4dot.code.renamer { public void rename(List renamedTypes) { // Rename the longest names first. Otherwise eg. b.g.resources could be renamed // Class0.g.resources instead of Class1.resources when b.g was renamed Class1. - renamedTypes.Sort((a, b) => b.oldFullName.Length.CompareTo(a.oldFullName.Length)); + renamedTypes.Sort((a, b) => { + if (b.oldFullName.Length != a.oldFullName.Length) + return b.oldFullName.Length.CompareTo(a.oldFullName.Length); + return b.oldFullName.CompareTo(a.oldFullName); + }); nameToResource = new Dictionary(module.ModuleDefMD.Resources.Count * 3, StringComparer.Ordinal); foreach (var resource in module.ModuleDefMD.Resources) {