From 3e2bb9b2b5e4c6e0e7ea62f4921d2e317c07034e Mon Sep 17 00:00:00 2001 From: Thog Date: Thu, 1 Sep 2016 18:55:06 +0200 Subject: Fix for the last commit --- src/main/java/cuchaz/enigma/convert/MappingsConverter.java | 2 +- src/main/java/cuchaz/enigma/convert/MemberMatches.java | 10 ++++++++-- src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/cuchaz/enigma/convert/MappingsConverter.java b/src/main/java/cuchaz/enigma/convert/MappingsConverter.java index 4b4bb812..abb1bea0 100644 --- a/src/main/java/cuchaz/enigma/convert/MappingsConverter.java +++ b/src/main/java/cuchaz/enigma/convert/MappingsConverter.java @@ -436,7 +436,7 @@ public class MappingsConverter { memberMatches.makeMatch(obfSourceEntry, obfDestEntries.iterator().next()); } else if (obfDestEntries.isEmpty()) { // no match is possible =( - memberMatches.makeSourceUnmatchable(obfSourceEntry); + memberMatches.makeSourceUnmatchable(obfSourceEntry, null); } } } diff --git a/src/main/java/cuchaz/enigma/convert/MemberMatches.java b/src/main/java/cuchaz/enigma/convert/MemberMatches.java index e0888d54..97b47b2a 100644 --- a/src/main/java/cuchaz/enigma/convert/MemberMatches.java +++ b/src/main/java/cuchaz/enigma/convert/MemberMatches.java @@ -150,7 +150,7 @@ public class MemberMatches { { if (sourceDeobfuscator != null && destDeobfuscator != null) { - makeMatch(sourceEntry, destEntry); + unmakeMatch(sourceEntry, destEntry, null, null); sourceEntry = (T) sourceEntry.cloneToNewClass( sourceDeobfuscator.getJarIndex().getTranslationIndex().resolveEntryClass(sourceEntry, true)); destEntry = (T) destEntry.cloneToNewClass( @@ -165,7 +165,13 @@ public class MemberMatches { addUnmatchedDestEntry(destEntry); } - public void makeSourceUnmatchable(T sourceEntry) { + public void makeSourceUnmatchable(T sourceEntry, Deobfuscator sourceDeobfuscator) { + if (sourceDeobfuscator != null) + { + makeSourceUnmatchable(sourceEntry, null); + sourceEntry = (T) sourceEntry.cloneToNewClass( + sourceDeobfuscator.getJarIndex().getTranslationIndex().resolveEntryClass(sourceEntry, true)); + } assert (!isMatchedSourceEntry(sourceEntry)); boolean wasRemoved = m_unmatchedSourceEntries.remove(sourceEntry.getClassEntry(), sourceEntry); assert (wasRemoved); diff --git a/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java b/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java index 8f7d6e3c..9e90dae4 100644 --- a/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java +++ b/src/main/java/cuchaz/enigma/gui/MemberMatchingGui.java @@ -465,7 +465,7 @@ public class MemberMatchingGui { protected void unmatchable() { // update the field matches - m_memberMatches.makeSourceUnmatchable(m_obfSourceEntry); + m_memberMatches.makeSourceUnmatchable(m_obfSourceEntry, m_sourceDeobfuscator); save(); // update the ui -- cgit v1.2.3