Removed ".class" from internal classNodes map

This commit is contained in:
SuspiciousActivity committed 2021-03-12 23:29:47 +01:00
1 parent b86e8658e2
commit a9612c058c
9 files changed
+26 -36

No files matched your search

+2 -2
View File
@@ -130,7 +130,7 @@ public class CompilationBox extends JFrame {
synchronized (Main.classNodes) {
classNodes = new HashMap<>(Main.classNodes);
}
classNodes.put("Compiled.class", node);
classNodes.put("Compiled", node);
File[] files = tmpFolder.listFiles();
if (files != null)
for (File f : files) {
@@ -145,7 +145,7 @@ public class CompilationBox extends JFrame {
read = new ClassReader(baos.toByteArray());
node = new ClassNode();
read.accept(node, 0);
classNodes.put(f.getName(), node);
classNodes.put(node.name, node);
}
compSuccess.textArea
.setText(decompiler.getDecompiler().decompile(mainNode, classNodes));
@@ -40,7 +40,7 @@ public class GlobalSearchOpenBox extends JFrame {
SingleThreadedExecutor.submit(() -> {
Info val = list.getSelectedValue();
if (val != null && !val.owner.equals(Main.currentNodeName)) {
Main.selectFile(val.nodePath);
Main.selectFile(val.owner);
}
});
}
@@ -59,14 +59,12 @@ public class GlobalSearchOpenBox extends JFrame {
String name;
String desc;
MethodNode mn;
String nodePath;
public Info(String owner, String name, String desc, MethodNode mn) {
this.owner = owner;
this.name = name;
this.desc = desc;
this.mn = mn;
nodePath = Main.getFullName(owner);
}
@Override
+3 -3
View File
@@ -79,7 +79,7 @@ public class RenameBox extends JFrame {
JOptionPane.showMessageDialog(null, "Desc not set!", "Error!", JOptionPane.ERROR_MESSAGE);
return;
}
ClassNode clazz = Main.classNodes.get(Main.getFullName(className));
ClassNode clazz = Main.classNodes.get(className);
if (clazz == null) {
JOptionPane.showMessageDialog(null, "ClassNode not found!", "Error!", JOptionPane.ERROR_MESSAGE);
return;
@@ -94,7 +94,7 @@ public class RenameBox extends JFrame {
if (newDesc.startsWith("(")) { // method
ClassNode lastHit = clazz;
while (clazz != null && clazz.superName != null) {
ClassNode tmp = Main.classNodes.get(Main.getFullName(clazz.superName));
ClassNode tmp = Main.classNodes.get(clazz.superName);
if (tmp != null) {
boolean found = false;
for (MethodNode mn : clazz.methods) {
@@ -127,7 +127,7 @@ public class RenameBox extends JFrame {
extendsMyClass = true;
break;
}
ClassNode tmp = Main.classNodes.get(Main.getFullName(checkCN.superName));
ClassNode tmp = Main.classNodes.get(checkCN.superName);
if (tmp != null) {
checkCN = tmp;
} else {
+6 -8
View File
@@ -79,19 +79,17 @@ public class TypeOpenBox extends JFrame {
}
String search = UnicodeUtils.unescape(null, txtSearch.getText(), true).toLowerCase();
if (search.contains("/")) {
for (String s : Main.classNodes.keySet()) {
String className = s.substring(0, s.length() - 6);
for (String className : Main.classNodes.keySet()) {
if (!className.contains("$") && className.toLowerCase().startsWith(search)) {
model.addElement(s);
model.addElement(className);
}
}
} else {
for (String s : Main.classNodes.keySet()) {
String[] split = s.split("/");
String className = split[split.length - 1];
className = className.substring(0, className.length() - 6);
for (String className : Main.classNodes.keySet()) {
String[] split = className.split("/");
className = split[split.length - 1];
if (!className.contains("$") && className.toLowerCase().startsWith(search)) {
model.addElement(s);
model.addElement(className);
}
}
}
@@ -110,7 +110,7 @@ public class CFRDecompiler implements IDecompiler {
// try loading other classes from jar
ClassNode node;
synchronized (classNodes) {
node = classNodes.get(name + ".class");
node = classNodes.get(name);
}
if (node != null)
return Pair.make(IDecompiler.getBytes(node), name);
+2 -2
View File
@@ -42,7 +42,7 @@ public class JDDecompiler implements Loader, Printer, IDecompiler {
@Override
public boolean canLoad(String internalName) {
synchronized (classNodes) {
return classNodes.containsKey(internalName + ".class");
return classNodes.containsKey(internalName);
}
}
@@ -50,7 +50,7 @@ public class JDDecompiler implements Loader, Printer, IDecompiler {
public byte[] load(String internalName) throws LoaderException {
ClassNode node;
synchronized (classNodes) {
node = classNodes.get(internalName + ".class");
node = classNodes.get(internalName);
}
if (node != null)
return IDecompiler.getBytes(node);
@@ -51,7 +51,7 @@ public class ProcyonDecompiler implements IDecompiler {
}
ClassNode node;
synchronized (classNodes) {
node = classNodes.get(s + ".class");
node = classNodes.get(s);
}
if (node != null) {
byte[] data = IDecompiler.getBytes(node);
+2 -2
View File
@@ -61,7 +61,7 @@ public class ArchiveTreeModel extends DefaultTreeModel {
ClassReader reader = new ClassReader(data);
ClassNode node = new ClassNode();
reader.accept(node, 0);
classNodes.put(Main.getFullName(node.name), node);
classNodes.put(node.name, node);
if ((next.getName().contains("/")
? (!Main.patternSlash
@@ -70,7 +70,7 @@ public class ArchiveTreeModel extends DefaultTreeModel {
: (!next.getName().contains("$")))
|| (next.getName().startsWith("$") || next.getName().contains("$$")
|| next.getName().endsWith("$"))) {
paths.add(Main.getFullName(node.name));
paths.add(node.name + ".class");
}
} catch (Exception e) {
otherFiles.put(next.getName(), data);
+8 -14
View File
@@ -483,12 +483,11 @@ public class Main extends JFrame {
String s = ((ByteEditTreeNode) tree.getSelectionPath().getLastPathComponent()).path;
if (JOptionPane.showConfirmDialog(INSTANCE, "Do you want to delete\n\"" + s + "\"?", "Delete",
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
String substr = s.substring(0, s.length() - 6);
ArrayList<String> toRemove = new ArrayList<>();
for (String key : Main.classNodes.keySet()) {
if (key.contains("$")) {
String[] split = key.split("\\$");
if (split[0].equals(substr)) {
if (split[0].equals(s)) {
toRemove.add(key);
}
}
@@ -757,15 +756,15 @@ public class Main extends JFrame {
if (node == null) {
continue;
}
if (classNodes.replace(getFullName(node.name), node) == null) {
classNodes.put(getFullName(node.name), node);
if (classNodes.replace(node.name, node) == null) {
classNodes.put(node.name, node);
ArchiveTreeModel model;
if (tree.getModel().getClass().equals(DefaultTreeModel.class)) {
tree.setModel(model = new ArchiveTreeModel(classNodes, otherFiles));
} else {
model = (ArchiveTreeModel) tree.getModel();
}
String name = getFullName(node.name);
String name = node.name + ".class";
if (name.contains("/") ? (!name.split("/")[name.split("/").length - 1].contains("$"))
: (!name.contains("$"))) {
model.paths.add(name);
@@ -801,6 +800,7 @@ public class Main extends JFrame {
public static void selectFile(String s) {
if (s != null && s.endsWith(".class")) {
s = s.substring(0, s.length() - 6);
currentNodeName = s;
decompileCurrentNode();
txtByteEditView.setCaretPosition(0);
@@ -855,10 +855,8 @@ public class Main extends JFrame {
try {
EventQueue.invokeAndWait(new Runnable() {
public void run() {
synchronized (treeLock) {
isChangingFile = false;
Main.this.setTitle("ByteEdit");
}
isChangingFile = false;
Main.this.setTitle("ByteEdit");
}
});
} catch (Exception e) {
@@ -917,7 +915,7 @@ public class Main extends JFrame {
for (ClassNode node : classes) {
ClassWriter writer = new ClassWriter(computeFlags);
node.accept(writer);
output.putNextEntry(new ZipEntry(getFullName(node.name)));
output.putNextEntry(new ZipEntry(node.name + ".class"));
output.write(writer.toByteArray());
output.closeEntry();
}
@@ -943,8 +941,4 @@ public class Main extends JFrame {
public static void showError(String s) {
JOptionPane.showMessageDialog(INSTANCE, s, "Error!", JOptionPane.ERROR_MESSAGE);
}
public static String getFullName(String s) {
return s + ".class";
}
}