diff options
| author | 2018-07-17 19:14:08 +0200 | |
|---|---|---|
| committer | 2018-07-17 19:14:08 +0200 | |
| commit | a88175ffc95792b88a8724f66db6dda2b8cc32ee (patch) | |
| tree | 65895bbc6cf1766f4ca01e1257619ab1993e71dc /src/test/java/cuchaz/enigma/TestEntryFactory.java | |
| parent | Merge pull request #3 from thiakil/src-jar (diff) | |
| download | enigma-fork-a88175ffc95792b88a8724f66db6dda2b8cc32ee.tar.gz enigma-fork-a88175ffc95792b88a8724f66db6dda2b8cc32ee.tar.xz enigma-fork-a88175ffc95792b88a8724f66db6dda2b8cc32ee.zip | |
ASM Based Class Translator (#1)
* Initial port to ASM
* Package updates
* Annotation + inner class translation
* Fix inner class mapping
* More bytecode translation
* Signature refactoring
* Fix highlighting of mapped names
* Fix parameter name offset
* Fix anonymous class generation
* Fix issues with inner class signature transformation
* Fix bridged method detection
* Fix compile issues
* Resolve all failed tests
* Apply deobfuscated name to transformed classes
* Fix class signatures not being translated
* Fix frame array type translation
* Fix frame array type translation
* Fix array translation in method calls
* Fix method reference and bridge detection
* Fix handling of null deobf mappings
* Parameter translation in interfaces
* Fix enum parameter index offset
* Fix parsed local variable indexing
* Fix stackoverflow on rebuilding method names
* Ignore invalid decompiled variable indices
* basic source jar
* Output directly to file on source export
* Make decompile parallel
* fix incorrect super calls
* Use previous save state to delete old mapping files
* Fix old mappings not properly being removed
* Fix old mappings not properly being removed
* make isMethodProvider public
(cherry picked from commit ebad6a9)
* speed up Deobfuscator's getSources by using a single TranslatingTypeloader and caching the ClassLoaderTypeloader
* ignore .idea project folders
* move SynchronizedTypeLoader to a non-inner
* fix signature remap of inners for now
* index & resolve method/field references for usages view
* Allow reader/writer subclasses to provide the underlying file operations
* fix giving obf classes a name not removing them from the panel
* buffer the ParsedJar class entry inputstream, allow use with a jarinputstream
* make CachingClasspathTypeLoader public
* make CachingClasspathTypeLoader public
* support enum switches with obfuscated SwitchMaps
Diffstat (limited to 'src/test/java/cuchaz/enigma/TestEntryFactory.java')
| -rw-r--r-- | src/test/java/cuchaz/enigma/TestEntryFactory.java | 31 |
1 files changed, 9 insertions, 22 deletions
diff --git a/src/test/java/cuchaz/enigma/TestEntryFactory.java b/src/test/java/cuchaz/enigma/TestEntryFactory.java index 1c527f5..4f52609 100644 --- a/src/test/java/cuchaz/enigma/TestEntryFactory.java +++ b/src/test/java/cuchaz/enigma/TestEntryFactory.java | |||
| @@ -13,6 +13,9 @@ package cuchaz.enigma; | |||
| 13 | 13 | ||
| 14 | import cuchaz.enigma.analysis.EntryReference; | 14 | import cuchaz.enigma.analysis.EntryReference; |
| 15 | import cuchaz.enigma.mapping.*; | 15 | import cuchaz.enigma.mapping.*; |
| 16 | import cuchaz.enigma.mapping.entry.ClassEntry; | ||
| 17 | import cuchaz.enigma.mapping.entry.FieldEntry; | ||
| 18 | import cuchaz.enigma.mapping.entry.MethodEntry; | ||
| 16 | 19 | ||
| 17 | public class TestEntryFactory { | 20 | public class TestEntryFactory { |
| 18 | 21 | ||
| @@ -25,7 +28,7 @@ public class TestEntryFactory { | |||
| 25 | } | 28 | } |
| 26 | 29 | ||
| 27 | public static FieldEntry newField(ClassEntry classEntry, String fieldName, String fieldType) { | 30 | public static FieldEntry newField(ClassEntry classEntry, String fieldName, String fieldType) { |
| 28 | return new FieldEntry(classEntry, fieldName, new Type(fieldType)); | 31 | return new FieldEntry(classEntry, fieldName, new TypeDescriptor(fieldType)); |
| 29 | } | 32 | } |
| 30 | 33 | ||
| 31 | public static MethodEntry newMethod(String className, String methodName, String methodSignature) { | 34 | public static MethodEntry newMethod(String className, String methodName, String methodSignature) { |
| @@ -33,30 +36,14 @@ public class TestEntryFactory { | |||
| 33 | } | 36 | } |
| 34 | 37 | ||
| 35 | public static MethodEntry newMethod(ClassEntry classEntry, String methodName, String methodSignature) { | 38 | public static MethodEntry newMethod(ClassEntry classEntry, String methodName, String methodSignature) { |
| 36 | return new MethodEntry(classEntry, methodName, new Signature(methodSignature)); | 39 | return new MethodEntry(classEntry, methodName, new MethodDescriptor(methodSignature)); |
| 37 | } | 40 | } |
| 38 | 41 | ||
| 39 | public static ConstructorEntry newConstructor(String className, String signature) { | 42 | public static EntryReference<FieldEntry, MethodEntry> newFieldReferenceByMethod(FieldEntry fieldEntry, String callerClassName, String callerName, String callerSignature) { |
| 40 | return newConstructor(newClass(className), signature); | 43 | return new EntryReference<>(fieldEntry, "", newMethod(callerClassName, callerName, callerSignature)); |
| 41 | } | 44 | } |
| 42 | 45 | ||
| 43 | public static ConstructorEntry newConstructor(ClassEntry classEntry, String signature) { | 46 | public static EntryReference<MethodEntry, MethodEntry> newBehaviorReferenceByMethod(MethodEntry methodEntry, String callerClassName, String callerName, String callerSignature) { |
| 44 | return new ConstructorEntry(classEntry, new Signature(signature)); | 47 | return new EntryReference<>(methodEntry, "", newMethod(callerClassName, callerName, callerSignature)); |
| 45 | } | ||
| 46 | |||
| 47 | public static EntryReference<FieldEntry, BehaviorEntry> newFieldReferenceByMethod(FieldEntry fieldEntry, String callerClassName, String callerName, String callerSignature) { | ||
| 48 | return new EntryReference<FieldEntry, BehaviorEntry>(fieldEntry, "", newMethod(callerClassName, callerName, callerSignature)); | ||
| 49 | } | ||
| 50 | |||
| 51 | public static EntryReference<FieldEntry, BehaviorEntry> newFieldReferenceByConstructor(FieldEntry fieldEntry, String callerClassName, String callerSignature) { | ||
| 52 | return new EntryReference<FieldEntry, BehaviorEntry>(fieldEntry, "", newConstructor(callerClassName, callerSignature)); | ||
| 53 | } | ||
| 54 | |||
| 55 | public static EntryReference<BehaviorEntry, BehaviorEntry> newBehaviorReferenceByMethod(BehaviorEntry behaviorEntry, String callerClassName, String callerName, String callerSignature) { | ||
| 56 | return new EntryReference<BehaviorEntry, BehaviorEntry>(behaviorEntry, "", newMethod(callerClassName, callerName, callerSignature)); | ||
| 57 | } | ||
| 58 | |||
| 59 | public static EntryReference<BehaviorEntry, BehaviorEntry> newBehaviorReferenceByConstructor(BehaviorEntry behaviorEntry, String callerClassName, String callerSignature) { | ||
| 60 | return new EntryReference<BehaviorEntry, BehaviorEntry>(behaviorEntry, "", newConstructor(callerClassName, callerSignature)); | ||
| 61 | } | 48 | } |
| 62 | } | 49 | } |