diff --git a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java index 15d2b0fe6..e6a79a7b3 100644 --- a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java +++ b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java @@ -86,11 +86,13 @@ public class JadxWrapper { // TODO: check and move into core package public void unloadClasses() { - for (ClassNode cls : getDecompiler().getRoot().getClasses()) { - ProcessState clsState = cls.getState(); - cls.unload(); - cls.setState(clsState == PROCESS_COMPLETE ? GENERATED_AND_UNLOADED : NOT_LOADED); - } + getCurrentDecompiler().ifPresent(decompiler -> { + for (ClassNode cls : decompiler.getRoot().getClasses()) { + ProcessState clsState = cls.getState(); + cls.unload(); + cls.setState(clsState == PROCESS_COMPLETE ? GENERATED_AND_UNLOADED : NOT_LOADED); + } + }); } public void close() { diff --git a/jadx-gui/src/main/java/jadx/gui/ui/dialog/SearchDialog.java b/jadx-gui/src/main/java/jadx/gui/ui/dialog/SearchDialog.java index 33aea5a6c..a5f098f1d 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/dialog/SearchDialog.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/dialog/SearchDialog.java @@ -205,7 +205,6 @@ public class SearchDialog extends CommonSearchDialog { removeActiveTabListener(); searchBackgroundExecutor.execute(() -> { stopSearchTask(); - mainWindow.getBackgroundExecutor().waitForComplete(); unloadTempData(); }); super.dispose();