Fixed some bugs

This commit is contained in:
SuspiciousActivity committed 2019-10-10 17:13:48 +02:00
1 parent 46cd6de355
commit 5a077134a5
2 files changed
+14 -5

No files matched your search

+2 -2
View File
@@ -288,7 +288,7 @@ public class ClassNodeRemapper {
private void remapInstruction(String clazz, AbstractInsnNode n) {
if (FieldInsnNode.class.isInstance(n)) {
FieldInsnNode node = (FieldInsnNode) n;
node.name = getOldMemberName(new MemberData(clazz, node.desc, node.name));
node.name = getOldMemberName(new MemberData(node.owner, node.desc, node.name));
node.desc = getOldMemberFieldDesc(node.desc);
node.owner = getOldClassName(node.owner);
} else if (FrameNode.class.isInstance(n)) {
@@ -360,7 +360,7 @@ public class ClassNodeRemapper {
}
} else if (MethodInsnNode.class.isInstance(n)) {
MethodInsnNode node = (MethodInsnNode) n;
node.name = getOldMemberName(new MemberData(clazz, node.desc, node.name));
node.name = getOldMemberName(new MemberData(node.owner, node.desc, node.name));
node.desc = getOldMemberMethodDesc(node.desc);
node.owner = getOldClassName(node.owner);
} else if (TypeInsnNode.class.isInstance(n)) {
+12 -3
View File
@@ -110,11 +110,20 @@ public class MappingReader {
}
private String getOldClassName(String name) {
int arrayCount = 0;
int arrayIdx = name.lastIndexOf('[');
while (arrayIdx >= 0) {
arrayCount++;
name = name.substring(0, arrayIdx);
arrayIdx = name.lastIndexOf('[');
}
name = name.replace('.', '/');
String old = internalReversedClassMappings.get(name);
if (old != null)
return old;
return name;
if (old == null)
old = name;
for (int i = 0; i < arrayCount; i++)
old += "[]";
return old;
}
private String convertTypeToByteCode(String type) {