Commit f87bf3f1 authored by Skylot's avatar Skylot

core: fix class renaming by source file info

parent 87347c0a
...@@ -211,8 +211,23 @@ public class Deobfuscator { ...@@ -211,8 +211,23 @@ public class Deobfuscator {
} }
private String makeClsAlias(ClassNode cls) { private String makeClsAlias(ClassNode cls) {
ClassInfo classInfo = cls.getClassInfo();
String alias = getAliasFromSourceFile(cls);
if (alias == null) {
String clsName = classInfo.getShortName();
alias = String.format("C%04d%s", clsIndex++, makeName(clsName));
}
PackageNode pkg = getPackageNode(classInfo.getPackage(), true);
clsMap.put(classInfo, new DeobfClsInfo(this, cls, pkg, alias));
return alias;
}
@Nullable
private String getAliasFromSourceFile(ClassNode cls) {
SourceFileAttr sourceFileAttr = cls.get(AType.SOURCE_FILE); SourceFileAttr sourceFileAttr = cls.get(AType.SOURCE_FILE);
if (sourceFileAttr != null) { if (sourceFileAttr == null) {
return null;
}
String name = sourceFileAttr.getFileName(); String name = sourceFileAttr.getFileName();
if (name.endsWith(".java")) { if (name.endsWith(".java")) {
name = name.substring(0, name.length() - ".java".length()); name = name.substring(0, name.length() - ".java".length());
...@@ -223,14 +238,7 @@ public class Deobfuscator { ...@@ -223,14 +238,7 @@ public class Deobfuscator {
cls.remove(AType.SOURCE_FILE); cls.remove(AType.SOURCE_FILE);
return name; return name;
} }
} return null;
ClassInfo classInfo = cls.getClassInfo();
String clsName = classInfo.getShortName();
String alias = String.format("C%04d%s", clsIndex++, makeName(clsName));
PackageNode pkg = getPackageNode(classInfo.getPackage(), true);
clsMap.put(classInfo, new DeobfClsInfo(this, cls, pkg, alias));
return alias;
} }
@Nullable @Nullable
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment