From 4e9c52d5fc5d23e8a77857e712654596203acb31 Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 31 Aug 2014 16:14:45 -0400 Subject: fixed mapping conversion bug with class rename order --- src/cuchaz/enigma/mapping/Mappings.java | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) (limited to 'src/cuchaz/enigma/mapping/Mappings.java') diff --git a/src/cuchaz/enigma/mapping/Mappings.java b/src/cuchaz/enigma/mapping/Mappings.java index 4b47d16..0b03abb 100644 --- a/src/cuchaz/enigma/mapping/Mappings.java +++ b/src/cuchaz/enigma/mapping/Mappings.java @@ -15,6 +15,7 @@ import java.io.InputStream; import java.io.ObjectInputStream; import java.io.Serializable; import java.util.ArrayList; +import java.util.Collection; import java.util.Map; import java.util.Set; import java.util.zip.GZIPInputStream; @@ -66,7 +67,7 @@ public class Mappings implements Serializable } } - public Iterable classes( ) + public Collection classes( ) { assert( m_classesByObf.size() == m_classesByDeobf.size() ); return m_classesByObf.values(); @@ -141,30 +142,19 @@ public class Mappings implements Serializable return buf.toString(); } - public void renameObfClasses( Map nameMap ) + public void renameObfClass( String oldObfName, String newObfName ) { - for( ClassMapping classMapping : new ArrayList( m_classesByObf.values() ) ) + for( ClassMapping classMapping : new ArrayList( classes() ) ) { - String newName = nameMap.get( classMapping.getObfName() ); - if( newName != null ) + if( classMapping.renameObfClass( oldObfName, newObfName ) ) { - m_classesByObf.remove( classMapping.getObfName() ); - classMapping.renameObfClasses( nameMap ); - m_classesByObf.put( classMapping.getObfName(), classMapping ); + m_classesByObf.remove( oldObfName ); + m_classesByObf.put( newObfName, classMapping ); + assert( m_classesByObf.size() == m_classesByDeobf.size() ); } } } - - public void removeClassByObfName( String obfName ) - { - ClassMapping classMapping = m_classesByObf.get( obfName ); - if( classMapping != null ) - { - m_classesByObf.remove( classMapping.getObfName() ); - m_classesByDeobf.remove( classMapping.getDeobfName() ); - } - } - + public Set getAllObfClassNames( ) { final Set classNames = Sets.newHashSet(); -- cgit v1.2.3