diff options
Diffstat (limited to 'src/cuchaz/enigma/bytecode/ClassTranslator.java')
| -rw-r--r-- | src/cuchaz/enigma/bytecode/ClassTranslator.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cuchaz/enigma/bytecode/ClassTranslator.java b/src/cuchaz/enigma/bytecode/ClassTranslator.java index 735a8fa..6441830 100644 --- a/src/cuchaz/enigma/bytecode/ClassTranslator.java +++ b/src/cuchaz/enigma/bytecode/ClassTranslator.java | |||
| @@ -38,6 +38,7 @@ public class ClassTranslator { | |||
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | public void translate(CtClass c) { | 40 | public void translate(CtClass c) { |
| 41 | |||
| 41 | // NOTE: the order of these translations is very important | 42 | // NOTE: the order of these translations is very important |
| 42 | 43 | ||
| 43 | // translate all the field and method references in the code by editing the constant pool | 44 | // translate all the field and method references in the code by editing the constant pool |
| @@ -45,7 +46,9 @@ public class ClassTranslator { | |||
| 45 | ConstPoolEditor editor = new ConstPoolEditor(constants); | 46 | ConstPoolEditor editor = new ConstPoolEditor(constants); |
| 46 | for (int i = 1; i < constants.getSize(); i++) { | 47 | for (int i = 1; i < constants.getSize(); i++) { |
| 47 | switch (constants.getTag(i)) { | 48 | switch (constants.getTag(i)) { |
| 49 | |||
| 48 | case ConstPool.CONST_Fieldref: { | 50 | case ConstPool.CONST_Fieldref: { |
| 51 | |||
| 49 | // translate the name | 52 | // translate the name |
| 50 | FieldEntry entry = new FieldEntry( | 53 | FieldEntry entry = new FieldEntry( |
| 51 | new ClassEntry(Descriptor.toJvmName(constants.getFieldrefClassName(i))), | 54 | new ClassEntry(Descriptor.toJvmName(constants.getFieldrefClassName(i))), |
| @@ -53,6 +56,11 @@ public class ClassTranslator { | |||
| 53 | ); | 56 | ); |
| 54 | FieldEntry translatedEntry = m_translator.translateEntry(entry); | 57 | FieldEntry translatedEntry = m_translator.translateEntry(entry); |
| 55 | 58 | ||
| 59 | // TEMP | ||
| 60 | if (entry.toString().equals("none/bxq.m")) { | ||
| 61 | System.out.println("FIELD: " + entry + " -> " + translatedEntry); | ||
| 62 | } | ||
| 63 | |||
| 56 | // translate the type | 64 | // translate the type |
| 57 | String type = constants.getFieldrefType(i); | 65 | String type = constants.getFieldrefType(i); |
| 58 | String translatedType = m_translator.translateSignature(type); | 66 | String translatedType = m_translator.translateSignature(type); |
| @@ -65,6 +73,7 @@ public class ClassTranslator { | |||
| 65 | 73 | ||
| 66 | case ConstPool.CONST_Methodref: | 74 | case ConstPool.CONST_Methodref: |
| 67 | case ConstPool.CONST_InterfaceMethodref: { | 75 | case ConstPool.CONST_InterfaceMethodref: { |
| 76 | |||
| 68 | // translate the name and type | 77 | // translate the name and type |
| 69 | BehaviorEntry entry = BehaviorEntryFactory.create( | 78 | BehaviorEntry entry = BehaviorEntryFactory.create( |
| 70 | Descriptor.toJvmName(editor.getMemberrefClassname(i)), | 79 | Descriptor.toJvmName(editor.getMemberrefClassname(i)), |