/** * Returns whether the given class member has a special new name. * @param member the class member. */ private static boolean isSpecialName(Member member) { return SpecialNameFactory.isSpecialName(MemberObfuscator.newMemberName(member)); } }
/** * Utility for creating a new NameFactory that can generate names for injected * members: the generated names are unique within the given class, and don't * clash with non-injected members of its super classes. * * @param clazz the class for which to generate a NameFactory. * @return the new NameFactory instance. */ public static UniqueMemberNameFactory newInjectedMemberNameFactory(Clazz clazz) { return new UniqueMemberNameFactory( new PrefixingNameFactory( new SimpleNameFactory(), INJECTED_MEMBER_PREFIX), clazz); }
public void reset() { index = 0; nameFactory.reset(); }
public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) { MemberObfuscator.setNewMemberName(libraryMethod, null); } }
public void visitLibraryMember(LibraryClass libraryClass, LibraryMember libraryMember) { String newName = MemberObfuscator.newMemberName(libraryMember); if (newName != null) { libraryMember.name = newName; } }
public boolean processClassMapping(String className, String newClassName) { boolean result = false; for (int index = 0; index < mappingProcessors.length; index++) { result |= mappingProcessors[index].processClassMapping(className, newClassName); } return result; }
public void visitUnknownAttribute(Clazz clazz, UnknownAttribute unknownAttribute) { // This is the best we can do for unknown attributes. markCpUtf8Entry(clazz, unknownAttribute.u2attributeNameIndex); }
public void visitEnclosingMethodAttribute(Clazz clazz, EnclosingMethodAttribute enclosingMethodAttribute) { if (enclosingMethodAttribute.u2nameAndTypeIndex != 0) { markNameAndTypeConstant(clazz, enclosingMethodAttribute.u2nameAndTypeIndex); } }
/** * Utility for creating a new NameFactory that can generate names for injected * members: the generated names are unique within the given class, and don't * clash with non-injected members of its super classes. * * @param clazz the class for which to generate a NameFactory. * @return the new NameFactory instance. */ public static UniqueMemberNameFactory newInjectedMemberNameFactory(Clazz clazz) { return new UniqueMemberNameFactory( new PrefixingNameFactory( new SimpleNameFactory(), INJECTED_MEMBER_PREFIX), clazz); }
/** * Returns whether the given class member has a special new name. * @param member the class member. */ private static boolean hasSpecialName(Member member) { return SpecialNameFactory.isSpecialName(MemberObfuscator.newMemberName(member)); } }
public void reset() { delegateNameFactory.reset(); } }
public void visitLibraryMethod(LibraryClass libraryClass, LibraryMethod libraryMethod) { MemberObfuscator.setNewMemberName(libraryMethod, null); } }
public void visitSignatureAttribute(Clazz clazz, SignatureAttribute signatureAttribute) { markCpUtf8Entry(clazz, signatureAttribute.u2attributeNameIndex); markCpUtf8Entry(clazz, signatureAttribute.u2signatureIndex); }
/** * Utility for creating a new NameFactory that can generate names for injected * members: the generated names are unique within the given class, and don't * clash with non-injected members of its super classes. * * @param clazz the class for which to generate a NameFactory. * @return the new NameFactory instance. */ public static UniqueMemberNameFactory newInjectedMemberNameFactory(Clazz clazz) { return new UniqueMemberNameFactory( new PrefixingNameFactory( new SimpleNameFactory(), INJECTED_MEMBER_PREFIX), clazz); }
/** * Returns whether the given class member has a special new name. * @param member the class member. */ private static boolean hasSpecialName(Member member) { return SpecialNameFactory.isSpecialName(MemberObfuscator.newMemberName(member)); } }
public void visitLibraryClass(LibraryClass libraryClass) { nameFactory.reset(); } }
public void visitLocalVariableInfo(Clazz clazz, Method method, CodeAttribute codeAttribute, LocalVariableInfo localVariableInfo) { markCpUtf8Entry(clazz, localVariableInfo.u2nameIndex); markCpUtf8Entry(clazz, localVariableInfo.u2descriptorIndex); }
/** * Returns whether the given class member has a special new name. * @param member the class member. */ private static boolean hasSpecialName(Member member) { return SpecialNameFactory.isSpecialName(MemberObfuscator.newMemberName(member)); } }
public void visitClassElementValue(Clazz clazz, Annotation annotation, ClassElementValue classElementValue) { if (classElementValue.u2elementNameIndex != 0) { markCpUtf8Entry(clazz, classElementValue.u2elementNameIndex); } markCpUtf8Entry(clazz, classElementValue.u2classInfoIndex); }
public void visitConstantElementValue(Clazz clazz, Annotation annotation, ConstantElementValue constantElementValue) { if (constantElementValue.u2elementNameIndex != 0) { markCpUtf8Entry(clazz, constantElementValue.u2elementNameIndex); } // Only the string constant element value refers to a UTF-8 entry. if (constantElementValue.u1tag == ClassConstants.ELEMENT_VALUE_STRING_CONSTANT) { markCpUtf8Entry(clazz, constantElementValue.u2constantValueIndex); } }