From 6c4440ac1133bfaa7871d1049d174528a289ef30 Mon Sep 17 00:00:00 2001 From: hg Date: Sun, 17 Aug 2014 10:56:17 -0400 Subject: added support for automatic reconstruction of inner and anonymous classes also added class to restore bridge method flags taken out by the obfuscator --- src/cuchaz/enigma/mapping/MappingsReader.java | 76 ++++++++++++++++++++------- 1 file changed, 56 insertions(+), 20 deletions(-) (limited to 'src/cuchaz/enigma/mapping/MappingsReader.java') diff --git a/src/cuchaz/enigma/mapping/MappingsReader.java b/src/cuchaz/enigma/mapping/MappingsReader.java index b039409..4cebb3a 100644 --- a/src/cuchaz/enigma/mapping/MappingsReader.java +++ b/src/cuchaz/enigma/mapping/MappingsReader.java @@ -13,25 +13,27 @@ package cuchaz.enigma.mapping; import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; +import java.util.Deque; import java.util.NoSuchElementException; import java.util.Scanner; +import com.google.common.collect.Queues; + import cuchaz.enigma.Util; public class MappingsReader { public Mappings read( Reader in ) - throws IOException + throws IOException, MappingParseException { return read( new BufferedReader( in ) ); } public Mappings read( BufferedReader in ) - throws IOException + throws IOException, MappingParseException { Mappings mappings = new Mappings(); - ClassMapping classMapping = null; - MethodMapping methodMapping = null; + Deque mappingStack = Queues.newArrayDeque(); int lineNumber = 0; String line = null; @@ -47,12 +49,28 @@ public class MappingsReader } // skip blank lines - line = line.trim(); - if( line.length() <= 0 ) + if( line.trim().length() <= 0 ) { continue; } + // get the indent of this line + int indent = 0; + for( int i=0; i