1 21 package proguard.obfuscate; 22 23 import proguard.classfile.*; 24 import proguard.classfile.visitor.*; 25 26 27 37 class NameMarker 38 implements ClassVisitor, 39 MemberVisitor 40 { 41 43 public void visitProgramClass(ProgramClass programClass) 44 { 45 keepClassName(programClass); 46 } 47 48 49 public void visitLibraryClass(LibraryClass libraryClass) 50 { 51 keepClassName(libraryClass); 52 } 53 54 55 57 public void visitProgramField(ProgramClass programClass, ProgramField programField) 58 { 59 keepFieldName(programClass, programField); 60 } 61 62 63 public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) 64 { 65 keepMethodName(programClass, programMethod); 66 } 67 68 69 public void visitLibraryField(LibraryClass libraryClass, LibraryField libraryField) 70 { 71 keepFieldName(libraryClass, libraryField); 72 } 73 74 75 public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) 76 { 77 keepMethodName(libraryClass, libraryMethod); 78 } 79 80 81 83 86 public void keepClassName(Clazz clazz) 87 { 88 ClassObfuscator.setNewClassName(clazz, 89 clazz.getName()); 90 } 91 92 93 96 private void keepFieldName(Clazz clazz, Field field) 97 { 98 MemberObfuscator.setFixedNewMemberName(field, 99 field.getName(clazz)); 100 } 101 102 103 106 private void keepMethodName(Clazz clazz, Method method) 107 { 108 String name = method.getName(clazz); 109 110 if (!name.equals(ClassConstants.INTERNAL_METHOD_NAME_CLINIT) && 111 !name.equals(ClassConstants.INTERNAL_METHOD_NAME_INIT)) 112 { 113 MemberObfuscator.setFixedNewMemberName(method, 114 method.getName(clazz)); 115 } 116 } 117 } 118 | Popular Tags |