summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar 2xsaiko2021-01-23 16:08:18 +0100
committerGravatar 2xsaiko2021-01-23 16:08:18 +0100
commitb8813c91cb7867ab67e356b7469550130272710c (patch)
tree4614ed5c49706860bb8c43055eefaa3d5fe78145
parentAttempt fixing rare CME when loading a jar while tabs are open (diff)
downloadenigma-b8813c91cb7867ab67e356b7469550130272710c.tar.gz
enigma-b8813c91cb7867ab67e356b7469550130272710c.tar.xz
enigma-b8813c91cb7867ab67e356b7469550130272710c.zip
Fixed Javadoc not updating in certain cases (close/open mappings)
Closes #210.
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java6
-rw-r--r--enigma-swing/src/main/java/cuchaz/enigma/gui/panels/EditorPanel.java2
-rw-r--r--enigma/src/main/java/cuchaz/enigma/classhandle/ClassHandleProvider.java10
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 {
130 loadedMappingPath = path; 130 loadedMappingPath = path;
131 131
132 refreshClasses(); 132 refreshClasses();
133 chp.invalidateMapped(); 133 chp.invalidateJavadoc();
134 } catch (MappingParseException e) { 134 } catch (MappingParseException e) {
135 JOptionPane.showMessageDialog(gui.getFrame(), e.getMessage()); 135 JOptionPane.showMessageDialog(gui.getFrame(), e.getMessage());
136 } 136 }
@@ -143,7 +143,7 @@ public class GuiController implements ClientPacketHandler {
143 143
144 project.setMappings(mappings); 144 project.setMappings(mappings);
145 refreshClasses(); 145 refreshClasses();
146 chp.invalidateMapped(); 146 chp.invalidateJavadoc();
147 } 147 }
148 148
149 public CompletableFuture<Void> saveMappings(Path path) { 149 public CompletableFuture<Void> saveMappings(Path path) {
@@ -178,7 +178,7 @@ public class GuiController implements ClientPacketHandler {
178 178
179 this.gui.setMappingsFile(null); 179 this.gui.setMappingsFile(null);
180 refreshClasses(); 180 refreshClasses();
181 chp.invalidateMapped(); 181 chp.invalidateJavadoc();
182 } 182 }
183 183
184 public void reloadAll() { 184 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 {
143 switch (event.getKeyCode()) { 143 switch (event.getKeyCode()) {
144 case KeyEvent.VK_F5: 144 case KeyEvent.VK_F5:
145 if (EditorPanel.this.classHandle != null) { 145 if (EditorPanel.this.classHandle != null) {
146 EditorPanel.this.classHandle.invalidateMapped(); 146 EditorPanel.this.classHandle.invalidate();
147 } 147 }
148 break; 148 break;
149 149
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
@@ -118,6 +118,16 @@ public final class ClassHandleProvider {
118 } 118 }
119 119
120 /** 120 /**
121 * Invalidates all javadoc. This causes all open class handles to be
122 * re-remapped.
123 */
124 public void invalidateJavadoc() {
125 withLock(lock.readLock(), () -> {
126 handles.values().forEach(Entry::invalidateJavadoc);
127 });
128 }
129
130 /**
121 * Invalidates javadoc for a single class. This also causes the class to be 131 * Invalidates javadoc for a single class. This also causes the class to be
122 * remapped again. 132 * remapped again.
123 * 133 *