diff --git a/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java b/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java index 9595d72fa..5551dc958 100644 --- a/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java +++ b/jadx-core/src/main/java/jadx/core/dex/visitors/RenameVisitor.java @@ -50,19 +50,23 @@ public class RenameVisitor extends AbstractVisitor { } private void checkClasses(RootNode root, boolean caseSensitive) { - Set clsNames = new HashSet<>(); - for (ClassNode cls : root.getClasses(true)) { + List classes = root.getClasses(true); + for (ClassNode cls : classes) { checkClassName(cls); checkFields(cls); checkMethods(cls); - if (!caseSensitive) { - ClassInfo classInfo = cls.getClassInfo(); - String clsFileName = classInfo.getAlias().getFullPath(); - if (!clsNames.add(clsFileName.toLowerCase())) { + } + if (!caseSensitive) { + Set clsFullPaths = new HashSet<>(classes.size()); + for (ClassNode cls : classes) { + ClassInfo clsInfo = cls.getClassInfo(); + ClassInfo aliasClsInfo = clsInfo.getAlias(); + if (!clsFullPaths.add(aliasClsInfo.getFullPath().toLowerCase())) { String newShortName = deobfuscator.getClsAlias(cls); - String newFullName = classInfo.makeFullClsName(newShortName, true); - classInfo.rename(cls.root(), newFullName); - clsNames.add(classInfo.getAlias().getFullPath().toLowerCase()); + String newFullName = aliasClsInfo.makeFullClsName(newShortName, true); + + clsInfo.rename(root, newFullName); + clsFullPaths.add(clsInfo.getAlias().getFullPath().toLowerCase()); } } }