matchGetMember(clazz, method, codeAttribute, offset, instruction, constantGetFieldMatcher, getFieldMatcher, true, false); matchGetMember(clazz, method, codeAttribute, offset, instruction, constantGetDeclaredFieldMatcher, getDeclaredFieldMatcher, true, true); matchGetMember(clazz, method, codeAttribute, offset, instruction, constantGetMethodMatcher0, getMethodMatcher0, false, false); matchGetMember(clazz, method, codeAttribute, offset, instruction, constantGetDeclaredMethodMatcher0, getDeclaredMethodMatcher0, false, true); matchGetMember(clazz, method, codeAttribute, offset, instruction, constantGetMethodMatcher1, getMethodMatcher1, false, false); matchGetMember(clazz, method, codeAttribute, offset, instruction, constantGetDeclaredMethodMatcher1, getDeclaredMethodMatcher1, false, true); matchGetMember(clazz, method, codeAttribute, offset, instruction, constantGetMethodMatcher2, getMethodMatcher2, false, false); matchGetMember(clazz, method, codeAttribute, offset, instruction,
initializeDynamicMemberReference(clazz, memberNameInstructionOffset, referencedClass, printDynamicMemberAccessNote(clazz, memberName, memberDescriptor,
new AllMethodVisitor( new AllAttributeVisitor( new DynamicMemberReferenceInitializer(programClassPool, libraryClassPool, getMemberNotePrinter,
printDynamicInvocationNote(clazz, variableSequenceMatcher, isField,
initializeDynamicMemberReference(clazz, memberNameInstructionOffset, referencedClass, printDynamicMemberAccessNote(clazz, memberName, memberDescriptor,
new AllMethodVisitor( new AllAttributeVisitor( new DynamicMemberReferenceInitializer(programClassPool, libraryClassPool, getMemberNotePrinter,
initializeDynamicMemberReference(clazz, memberNameInstructionOffset, referencedClass, printDynamicMemberAccessNote(clazz, memberName, memberDescriptor,
public void visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction) { // Try to match get[Declared]{Field,Constructor,Method} constructs. instruction.accept(clazz, method, codeAttribute, offset, dynamicMemberFinder); // Try to match the AtomicIntegerFieldUpdater.newUpdater( // SomeClass.class, "someField") construct. matchGetMember(clazz, method, codeAttribute, offset, instruction, knownItegerUpdaterMatcher, unknownIntegerUpdaterMatcher, true, false, false, "" + ClassConstants.TYPE_INT); // Try to match the AtomicLongFieldUpdater.newUpdater( // SomeClass.class, "someField") construct. matchGetMember(clazz, method, codeAttribute, offset, instruction, knownLongUpdaterMatcher, unknownLongUpdaterMatcher, true, false, false, "" + ClassConstants.TYPE_LONG); // Try to match the AtomicReferenceFieldUpdater.newUpdater( // SomeClass.class, SomeClass.class, "someField") construct. matchGetMember(clazz, method, codeAttribute, offset, instruction, knownReferenceUpdaterMatcher, unknownReferenceUpdaterMatcher, true, false, false, null); }
new AllMethodVisitor( new AllAttributeVisitor( new DynamicMemberReferenceInitializer(programClassPool, libraryClassPool, getMemberNotePrinter,
public void visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction) { // Try to match get[Declared]{Field,Constructor,Method} constructs. instruction.accept(clazz, method, codeAttribute, offset, dynamicMemberFinder); // Try to match the AtomicIntegerFieldUpdater.newUpdater( // SomeClass.class, "someField") construct. matchGetMember(clazz, method, codeAttribute, offset, instruction, knownItegerUpdaterMatcher, unknownIntegerUpdaterMatcher, true, false, false, "" + ClassConstants.TYPE_INT); // Try to match the AtomicLongFieldUpdater.newUpdater( // SomeClass.class, "someField") construct. matchGetMember(clazz, method, codeAttribute, offset, instruction, knownLongUpdaterMatcher, unknownLongUpdaterMatcher, true, false, false, "" + ClassConstants.TYPE_LONG); // Try to match the AtomicReferenceFieldUpdater.newUpdater( // SomeClass.class, SomeClass.class, "someField") construct. matchGetMember(clazz, method, codeAttribute, offset, instruction, knownReferenceUpdaterMatcher, unknownReferenceUpdaterMatcher, true, false, false, null); }
new AllAttributeVisitor( new AllInstructionVisitor( new DynamicMemberReferenceInitializer(programClassPool, libraryClassPool, getMemberNotePrinter,
public void visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction) { // Try to match get[Declared]{Field,Constructor,Method} constructs. instruction.accept(clazz, method, codeAttribute, offset, dynamicMemberFinder); // Try to match the AtomicIntegerFieldUpdater.newUpdater( // SomeClass.class, "someField") construct. matchGetMember(clazz, method, codeAttribute, offset, instruction, knownItegerUpdaterMatcher, unknownIntegerUpdaterMatcher, true, false, false, "" + ClassConstants.TYPE_INT); // Try to match the AtomicLongFieldUpdater.newUpdater( // SomeClass.class, "someField") construct. matchGetMember(clazz, method, codeAttribute, offset, instruction, knownLongUpdaterMatcher, unknownLongUpdaterMatcher, true, false, false, "" + ClassConstants.TYPE_LONG); // Try to match the AtomicReferenceFieldUpdater.newUpdater( // SomeClass.class, SomeClass.class, "someField") construct. matchGetMember(clazz, method, codeAttribute, offset, instruction, knownReferenceUpdaterMatcher, unknownReferenceUpdaterMatcher, true, false, false, null); }