mirror of
https://github.com/SuspiciousActivity/ByteEdit.git
synced 2026-08-13 17:56:17 +00:00
Removed ".class" from internal classNodes map
This commit is contained in:
1 parent
b86e8658e2
commit
a9612c058c
9 files changed
+24
-34
No files matched your search
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,11 +855,9 @@ public class Main extends JFrame {
|
||||
try {
|
||||
EventQueue.invokeAndWait(new Runnable() {
|
||||
public void run() {
|
||||
synchronized (treeLock) {
|
||||
isChangingFile = false;
|
||||
Main.this.setTitle("ByteEdit");
|
||||
}
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user