public void visitLibraryClass(LibraryClass libraryClass) { if (InstantiationClassMarker.isInstantiated(libraryClass)) { classVisitor.visitLibraryClass(libraryClass); } } }
public void visitAnyClass(Clazz clazz) { setInstantiated(clazz); }
new InstructionVisitor[] new InstantiationClassMarker(), new InstanceofClassMarker(), new DotClassMarker(),
new InstantiationClassMarker(), new InstanceofClassMarker(), new DotClassMarker(),
public void visitLibraryClass(LibraryClass libraryClass) { if (InstantiationClassMarker.isInstantiated(libraryClass)) { classVisitor.visitLibraryClass(libraryClass); } } }
public void visitProgramClass(ProgramClass programClass) { setInstantiated(programClass); }
new InstantiationClassMarker(), new InstanceofClassMarker(), new DotClassMarker(),
public void visitProgramClass(ProgramClass programClass) { if (InstantiationClassMarker.isInstantiated(programClass)) { classVisitor.visitProgramClass(programClass); } }
public void visitAnyClass(Clazz clazz) { setInstantiated(clazz); }
new InstantiationClassMarker(), new InstanceofClassMarker(), new DotClassMarker(),
public void visitProgramClass(ProgramClass programClass) { if (InstantiationClassMarker.isInstantiated(programClass)) { classVisitor.visitProgramClass(programClass); } }
public void visitAnyClass(Clazz clazz) { setInstantiated(clazz); }
public void visitLibraryClass(LibraryClass libraryClass) { if (InstantiationClassMarker.isInstantiated(libraryClass)) { classVisitor.visitLibraryClass(libraryClass); } } }
public void visitProgramClass(ProgramClass programClass) { if (InstantiationClassMarker.isInstantiated(programClass)) { classVisitor.visitProgramClass(programClass); } }
public void visitLibraryClass(LibraryClass libraryClass) { if (InstantiationClassMarker.isInstantiated(libraryClass)) { classVisitor.visitLibraryClass(libraryClass); } } }
public void visitProgramClass(ProgramClass programClass) { if (InstantiationClassMarker.isInstantiated(programClass)) { classVisitor.visitProgramClass(programClass); } }
/** * Returns whether the given class would introduce any unwanted fields * in the target class. */ private boolean introducesUnwantedFields(ProgramClass programClass, ProgramClass targetClass) { // The class must not have any fields, or it must not be instantiated, // without any other subclasses. return programClass.u2fieldsCount != 0 && (InstantiationClassMarker.isInstantiated(targetClass) || (targetClass.subClasses != null && !isOnlySubClass(programClass, targetClass))); }
/** * Returns whether the given class would introduce any unwanted fields * in the target class. */ private boolean introducesUnwantedFields(Clazz programClass, ProgramClass targetClass) { // It's ok if the target class is never instantiated and does not // have any subclasses except for maybe the source class. if (!InstantiationClassMarker.isInstantiated(targetClass) && (targetClass.subClasses == null || isOnlySubClass(programClass, targetClass))) { return false; } MemberCounter counter = new MemberCounter(); // Count all non-static fields in the the source class. programClass.fieldsAccept(new MemberAccessFilter(0, ClassConstants.ACC_STATIC, counter)); return counter.getCount() > 0; }
/** * Returns whether the given class would introduce any unwanted fields * in the target class. */ private boolean introducesUnwantedFields(Clazz programClass, ProgramClass targetClass) { // It's ok if the target class is never instantiated and does not // have any subclasses except for maybe the source class. if (!InstantiationClassMarker.isInstantiated(targetClass) && (targetClass.subClasses == null || isOnlySubClass(programClass, targetClass))) { return false; } MemberCounter counter = new MemberCounter(); // Count all non-static fields in the the source class. programClass.fieldsAccept(new MemberAccessFilter(0, ClassConstants.ACC_STATIC, counter)); return counter.getCount() > 0; }
/** * Returns whether the given class would introduce any unwanted fields * in the target class. */ private boolean introducesUnwantedFields(Clazz programClass, ProgramClass targetClass) { // It's ok if the target class is never instantiated and does not // have any subclasses except for maybe the source class. if (!InstantiationClassMarker.isInstantiated(targetClass) && (targetClass.subClasses == null || isOnlySubClass(programClass, targetClass))) { return false; } MemberCounter counter = new MemberCounter(); // Count all non-static fields in the the source class. programClass.fieldsAccept(new MemberAccessFilter(0, ClassConstants.ACC_STATIC, counter)); return counter.getCount() > 0; }