summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/Deobfuscator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuchaz/enigma/Deobfuscator.java')
-rw-r--r--src/cuchaz/enigma/Deobfuscator.java29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/cuchaz/enigma/Deobfuscator.java b/src/cuchaz/enigma/Deobfuscator.java
index 0847049..1178ed6 100644
--- a/src/cuchaz/enigma/Deobfuscator.java
+++ b/src/cuchaz/enigma/Deobfuscator.java
@@ -200,6 +200,12 @@ public class Deobfuscator
200 className = classMapping.getDeobfName(); 200 className = classMapping.getDeobfName();
201 } 201 }
202 202
203 // is this class even in the jar?
204 if( !m_jarIndex.containsObfClass( new ClassEntry( className ) ) )
205 {
206 return null;
207 }
208
203 // set the type loader 209 // set the type loader
204 m_settings.setTypeLoader( new TranslatingTypeLoader( 210 m_settings.setTypeLoader( new TranslatingTypeLoader(
205 m_jar, 211 m_jar,
@@ -279,15 +285,22 @@ public class Deobfuscator
279 progress.onProgress( i++, deobfClassEntry.toString() ); 285 progress.onProgress( i++, deobfClassEntry.toString() );
280 } 286 }
281 287
282 // get the source 288 try
283 String source = getSource( getSourceTree( obfClassEntry.getName() ) ); 289 {
284 290 // get the source
285 // write the file 291 String source = getSource( getSourceTree( obfClassEntry.getName() ) );
286 File file = new File( dirOut, deobfClassEntry.getName().replace( '.', '/' ) + ".java" ); 292
287 file.getParentFile().mkdirs(); 293 // write the file
288 try( FileWriter out = new FileWriter( file ) ) 294 File file = new File( dirOut, deobfClassEntry.getName().replace( '.', '/' ) + ".java" );
295 file.getParentFile().mkdirs();
296 try( FileWriter out = new FileWriter( file ) )
297 {
298 out.write( source );
299 }
300 }
301 catch( Throwable t )
289 { 302 {
290 out.write( source ); 303 throw new Error( "Unable to deobfuscate class " + deobfClassEntry.toString() + " (" + obfClassEntry.toString() + ")", t );
291 } 304 }
292 } 305 }
293 306