public void visitClassPool(ClassPool classPool) { // Visit all classes at least once, until the class visitors stop // setting the repeat trigger. do { if (DEBUG) { System.out.println("RepeatedClassPoolVisitor: new iteration"); } repeatTrigger.reset(); // Visit over all classes once. classPoolVisitor.visitClassPool(classPool); } while (repeatTrigger.isSet()); if (DEBUG) { System.out.println("RepeatedClassPoolVisitor: done iterating"); } } }
private void markAsWritten(Field field) { FieldOptimizationInfo fieldOptimizationInfo = FieldOptimizationInfo.getFieldOptimizationInfo(field); if (!fieldOptimizationInfo.isWritten() && fieldOptimizationInfo instanceof ProgramFieldOptimizationInfo) { ((ProgramFieldOptimizationInfo)fieldOptimizationInfo).setWritten(); repeatTrigger.set(); } }
final MutableBoolean repeatTrigger = new MutableBoolean();
final MutableBoolean repeatTrigger = new MutableBoolean();
private void markAsWritten(Field field) { FieldOptimizationInfo fieldOptimizationInfo = FieldOptimizationInfo.getFieldOptimizationInfo(field); if (!fieldOptimizationInfo.isWritten() && fieldOptimizationInfo instanceof ProgramFieldOptimizationInfo) { ((ProgramFieldOptimizationInfo)fieldOptimizationInfo).setWritten(); repeatTrigger.set(); } }
public void visitClassPool(ClassPool classPool) { // Visit all classes at least once, until the class visitors stop // setting the repeat trigger. do { if (DEBUG) { System.out.println("RepeatedClassPoolVisitor: new iteration"); } repeatTrigger.reset(); // Visit over all classes once. classPoolVisitor.visitClassPool(classPool); } while (repeatTrigger.isSet()); if (DEBUG) { System.out.println("RepeatedClassPoolVisitor: done iterating"); } } }
final MutableBoolean repeatTrigger = new MutableBoolean();
private void markAsRead(Field field) { FieldOptimizationInfo fieldOptimizationInfo = FieldOptimizationInfo.getFieldOptimizationInfo(field); if (!fieldOptimizationInfo.isRead() && fieldOptimizationInfo instanceof ProgramFieldOptimizationInfo) { ((ProgramFieldOptimizationInfo)fieldOptimizationInfo).setRead(); repeatTrigger.set(); } }
public void visitClassPool(ClassPool classPool) { // Visit all classes at least once, until the class visitors stop // setting the repeat trigger. do { if (DEBUG) { System.out.println("RepeatedClassPoolVisitor: new iteration"); } repeatTrigger.reset(); // Visit over all classes once. classPoolVisitor.visitClassPool(classPool); } while (repeatTrigger.isSet()); if (DEBUG) { System.out.println("RepeatedClassPoolVisitor: done iterating"); } } }
private void markAsRead(Field field) { FieldOptimizationInfo fieldOptimizationInfo = FieldOptimizationInfo.getFieldOptimizationInfo(field); if (!fieldOptimizationInfo.isRead() && fieldOptimizationInfo instanceof ProgramFieldOptimizationInfo) { ((ProgramFieldOptimizationInfo)fieldOptimizationInfo).setRead(); repeatTrigger.set(); } }
private void markAsRead(Field field) { FieldOptimizationInfo fieldOptimizationInfo = FieldOptimizationInfo.getFieldOptimizationInfo(field); if (!fieldOptimizationInfo.isRead() && fieldOptimizationInfo instanceof ProgramFieldOptimizationInfo) { ((ProgramFieldOptimizationInfo)fieldOptimizationInfo).setRead(); repeatTrigger.set(); } }
private void markAsWritten(Field field) { FieldOptimizationInfo fieldOptimizationInfo = FieldOptimizationInfo.getFieldOptimizationInfo(field); if (!fieldOptimizationInfo.isWritten() && fieldOptimizationInfo instanceof ProgramFieldOptimizationInfo) { ((ProgramFieldOptimizationInfo)fieldOptimizationInfo).setWritten(); repeatTrigger.set(); } }
/** * Marks that anything may be modified by the given method. */ private void markAnythingModified(Method method) { MethodOptimizationInfo methodOptimizationInfo = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (!methodOptimizationInfo.modifiesAnything() && methodOptimizationInfo instanceof ProgramMethodOptimizationInfo) { ((ProgramMethodOptimizationInfo)methodOptimizationInfo).setModifiesAnything(); // Trigger the repeater if the setter has changed the value. if (methodOptimizationInfo.modifiesAnything()) { repeatTrigger.set(); } } }
/** * Marks that the given method returns new instances (created inside the * method). */ private void markReturnsNewInstances(Method method) { MethodOptimizationInfo methodOptimizationInfo = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (!methodOptimizationInfo.returnsNewInstances() && methodOptimizationInfo instanceof ProgramMethodOptimizationInfo) { ((ProgramMethodOptimizationInfo)methodOptimizationInfo).setReturnsNewInstances(); // Trigger the repeater if the setter has changed the value. if (methodOptimizationInfo.returnsNewInstances()) { repeatTrigger.set(); } } }
/** * Marks the given parameters as modified by the given method. */ private void markModifiedParameters(Method method, long modifiedParameters) { MethodOptimizationInfo methodOptimizationInfo = MethodOptimizationInfo.getMethodOptimizationInfo(method); long oldModifiedParameters = methodOptimizationInfo.getModifiedParameters(); if ((~oldModifiedParameters & modifiedParameters) != 0 && methodOptimizationInfo instanceof ProgramMethodOptimizationInfo) { ((ProgramMethodOptimizationInfo)methodOptimizationInfo).updateModifiedParameters(modifiedParameters); // Trigger the repeater if the setter has changed the value. if (methodOptimizationInfo.getModifiedParameters() != oldModifiedParameters) { repeatTrigger.set(); } } }
/** * Marks that the given method returns external reference values (not * parameter or new instance). */ private void markReturnsExternalValues(Method method) { MethodOptimizationInfo methodOptimizationInfo = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (!methodOptimizationInfo.returnsExternalValues() && methodOptimizationInfo instanceof ProgramMethodOptimizationInfo) { ((ProgramMethodOptimizationInfo)methodOptimizationInfo).setReturnsExternalValues(); // Trigger the repeater if the setter has changed the value. if (methodOptimizationInfo.returnsExternalValues()) { repeatTrigger.set(); } } }
/** * Marks that anything may be modified by the given method. */ private void markAnythingModified(Method method) { MethodOptimizationInfo methodOptimizationInfo = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (!methodOptimizationInfo.modifiesAnything() && methodOptimizationInfo instanceof ProgramMethodOptimizationInfo) { ((ProgramMethodOptimizationInfo)methodOptimizationInfo).setModifiesAnything(); // Trigger the repeater if the setter has changed the value. if (methodOptimizationInfo.modifiesAnything()) { repeatTrigger.set(); } } }
/** * Marks the given parameter as returned from the given method. */ private void markParameterReturned(Method method, int parameterIndex) { MethodOptimizationInfo methodOptimizationInfo = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (!methodOptimizationInfo.returnsParameter(parameterIndex) && methodOptimizationInfo instanceof ProgramMethodOptimizationInfo) { ((ProgramMethodOptimizationInfo)methodOptimizationInfo).setParameterReturned(parameterIndex); // Trigger the repeater if the setter has changed the value. if (methodOptimizationInfo.returnsParameter(parameterIndex)) { repeatTrigger.set(); } } }
/** * Marks the given parameter as modified by the given method. */ private void markParameterModified(Method method, int parameterIndex) { MethodOptimizationInfo methodOptimizationInfo = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (!methodOptimizationInfo.isParameterModified(parameterIndex) && methodOptimizationInfo instanceof ProgramMethodOptimizationInfo) { ((ProgramMethodOptimizationInfo)methodOptimizationInfo).setParameterModified(parameterIndex); // Trigger the repeater if the setter has changed the value. if (methodOptimizationInfo.isParameterModified(parameterIndex)) { repeatTrigger.set(); } } }
/** * Marks that anything may be modified by the given method. */ private void markAnythingModified(Method method) { MethodOptimizationInfo methodOptimizationInfo = MethodOptimizationInfo.getMethodOptimizationInfo(method); if (!methodOptimizationInfo.modifiesAnything() && methodOptimizationInfo instanceof ProgramMethodOptimizationInfo) { ((ProgramMethodOptimizationInfo)methodOptimizationInfo).setModifiesAnything(); // Trigger the repeater if the setter has changed the value. if (methodOptimizationInfo.modifiesAnything()) { repeatTrigger.set(); } } }