Issue #63 Globally rename identifier

This commit is contained in:
Jindra Petk
2013-06-23 16:16:44 +02:00
parent 2c94e938cc
commit 65ef206650
14 changed files with 810 additions and 611 deletions

View File

@@ -177,6 +177,20 @@ public class ABC {
}
}
public void renameMultiname(int multinameIndex, String newname) {
if (multinameIndex <= 0 || multinameIndex >= constants.constant_multiname.length) {
throw new IllegalArgumentException("Multiname with index " + multinameIndex + " does not exist");
}
Set<Integer> stringUsages = getStringUsages();
int strIndex = constants.constant_multiname[multinameIndex].name_index;
if (stringUsages.contains(strIndex)) { //name is used elsewhere as string literal
strIndex = constants.forceGetStringId(newname);
constants.constant_multiname[multinameIndex].name_index = strIndex;
} else {
constants.constant_string[strIndex] = newname;
}
}
public void deobfuscateIdentifiers(HashMap<String, String> namesMap, RenameType renameType) {
Set<Integer> stringUsages = getStringUsages();
Map<Integer, String> stringUsageTypes = new HashMap<>();