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 {
}
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);
if (sourceFileAttr != null) {
if (sourceFileAttr == null) {
return null;
}
String name = sourceFileAttr.getFileName();
if (name.endsWith(".java")) {
name = name.substring(0, name.length() - ".java".length());
......@@ -223,14 +238,7 @@ public class Deobfuscator {
cls.remove(AType.SOURCE_FILE);
return name;
}
}
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;
return null;
}
@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