From b8813c91cb7867ab67e356b7469550130272710c Mon Sep 17 00:00:00 2001 From: 2xsaiko Date: Sat, 23 Jan 2021 16:08:18 +0100 Subject: Fixed Javadoc not updating in certain cases (close/open mappings) Closes #210. --- .../src/main/java/cuchaz/enigma/gui/GuiController.java | 6 +++--- .../src/main/java/cuchaz/enigma/gui/panels/EditorPanel.java | 2 +- .../java/cuchaz/enigma/classhandle/ClassHandleProvider.java | 10 ++++++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java index 6fc91ab7..a2346f1c 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java @@ -130,7 +130,7 @@ public class GuiController implements ClientPacketHandler { loadedMappingPath = path; refreshClasses(); - chp.invalidateMapped(); + chp.invalidateJavadoc(); } catch (MappingParseException e) { JOptionPane.showMessageDialog(gui.getFrame(), e.getMessage()); } @@ -143,7 +143,7 @@ public class GuiController implements ClientPacketHandler { project.setMappings(mappings); refreshClasses(); - chp.invalidateMapped(); + chp.invalidateJavadoc(); } public CompletableFuture saveMappings(Path path) { @@ -178,7 +178,7 @@ public class GuiController implements ClientPacketHandler { this.gui.setMappingsFile(null); refreshClasses(); - chp.invalidateMapped(); + chp.invalidateJavadoc(); } public void reloadAll() { diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/EditorPanel.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/EditorPanel.java index f3245670..61b48ce8 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/EditorPanel.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/EditorPanel.java @@ -143,7 +143,7 @@ public class EditorPanel { switch (event.getKeyCode()) { case KeyEvent.VK_F5: if (EditorPanel.this.classHandle != null) { - EditorPanel.this.classHandle.invalidateMapped(); + EditorPanel.this.classHandle.invalidate(); } break; diff --git a/enigma/src/main/java/cuchaz/enigma/classhandle/ClassHandleProvider.java b/enigma/src/main/java/cuchaz/enigma/classhandle/ClassHandleProvider.java index c9e3390d..8ce63557 100644 --- a/enigma/src/main/java/cuchaz/enigma/classhandle/ClassHandleProvider.java +++ b/enigma/src/main/java/cuchaz/enigma/classhandle/ClassHandleProvider.java @@ -117,6 +117,16 @@ public final class ClassHandleProvider { }); } + /** + * Invalidates all javadoc. This causes all open class handles to be + * re-remapped. + */ + public void invalidateJavadoc() { + withLock(lock.readLock(), () -> { + handles.values().forEach(Entry::invalidateJavadoc); + }); + } + /** * Invalidates javadoc for a single class. This also causes the class to be * remapped again. -- cgit v1.2.3