diff options
| author | 2018-07-05 13:02:28 +0200 | |
|---|---|---|
| committer | 2018-07-05 13:02:28 +0200 | |
| commit | 6aafa87757ab80a164a30f3601bcfb83ae48f559 (patch) | |
| tree | 86f6d7d2de7b28f43908994313390cb5fea99f31 /src/main/java/cuchaz/enigma/mapping/Mappings.java | |
| parent | Fix old mappings not properly being removed (diff) | |
| download | enigma-fork-6aafa87757ab80a164a30f3601bcfb83ae48f559.tar.gz enigma-fork-6aafa87757ab80a164a30f3601bcfb83ae48f559.tar.xz enigma-fork-6aafa87757ab80a164a30f3601bcfb83ae48f559.zip | |
Fix old mappings not properly being removed
Diffstat (limited to 'src/main/java/cuchaz/enigma/mapping/Mappings.java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/mapping/Mappings.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/main/java/cuchaz/enigma/mapping/Mappings.java b/src/main/java/cuchaz/enigma/mapping/Mappings.java index 307b1bd..3ef1be5 100644 --- a/src/main/java/cuchaz/enigma/mapping/Mappings.java +++ b/src/main/java/cuchaz/enigma/mapping/Mappings.java | |||
| @@ -23,6 +23,7 @@ import cuchaz.enigma.throwables.MappingConflict; | |||
| 23 | import java.io.File; | 23 | import java.io.File; |
| 24 | import java.io.IOException; | 24 | import java.io.IOException; |
| 25 | import java.util.*; | 25 | import java.util.*; |
| 26 | import java.util.stream.Collectors; | ||
| 26 | 27 | ||
| 27 | public class Mappings { | 28 | public class Mappings { |
| 28 | 29 | ||
| @@ -47,10 +48,6 @@ public class Mappings { | |||
| 47 | } | 48 | } |
| 48 | 49 | ||
| 49 | public void addClassMapping(ClassMapping classMapping) throws MappingConflict { | 50 | public void addClassMapping(ClassMapping classMapping) throws MappingConflict { |
| 50 | if (classMapping.isObfuscated()) { | ||
| 51 | return; | ||
| 52 | } | ||
| 53 | |||
| 54 | if (this.classesByObf.containsKey(classMapping.getObfFullName())) { | 51 | if (this.classesByObf.containsKey(classMapping.getObfFullName())) { |
| 55 | throw new MappingConflict("class", classMapping.getObfFullName(), this.classesByObf.get(classMapping.getObfFullName()).getObfFullName()); | 52 | throw new MappingConflict("class", classMapping.getObfFullName(), this.classesByObf.get(classMapping.getObfFullName()).getObfFullName()); |
| 56 | } | 53 | } |
| @@ -217,8 +214,14 @@ public class Mappings { | |||
| 217 | 214 | ||
| 218 | public void savePreviousState() { | 215 | public void savePreviousState() { |
| 219 | this.previousState = new Mappings(this.originMapping); | 216 | this.previousState = new Mappings(this.originMapping); |
| 220 | this.previousState.classesByDeobf = Maps.newHashMap(this.classesByDeobf); | 217 | this.previousState.classesByDeobf = new HashMap<>(); |
| 221 | this.previousState.classesByObf = Maps.newHashMap(this.classesByObf); | 218 | for (Map.Entry<String, ClassMapping> entry : this.classesByDeobf.entrySet()) { |
| 219 | this.previousState.classesByDeobf.put(entry.getKey(), entry.getValue().copy()); | ||
| 220 | } | ||
| 221 | this.previousState.classesByObf = new HashMap<>(); | ||
| 222 | for (Map.Entry<String, ClassMapping> entry : this.classesByObf.entrySet()) { | ||
| 223 | this.previousState.classesByObf.put(entry.getKey(), entry.getValue().copy()); | ||
| 224 | } | ||
| 222 | classesByDeobf.values().forEach(ClassMapping::resetDirty); | 225 | classesByDeobf.values().forEach(ClassMapping::resetDirty); |
| 223 | classesByObf.values().forEach(ClassMapping::resetDirty); | 226 | classesByObf.values().forEach(ClassMapping::resetDirty); |
| 224 | } | 227 | } |