public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { // Is the method an initializer? if (ClassUtil.isInitializer(programMethod.getName(programClass))) { // Does it have exactly one parameter? if (ClassUtil.internalMethodParameterCount(programMethod.getDescriptor(programClass)) == 1) { // Is the parameter a non-null reference? Value value = StoringInvocationUnit.getMethodParameterValue(programMethod, 1); if (value != null && value.computationalType() == Value.TYPE_REFERENCE && value.referenceValue().isNotNull() == Value.ALWAYS) { // Does the method initialize the field? programMethod.attributesAccept(programClass, this); } else { wrapCounter = Integer.MIN_VALUE; } } else { wrapCounter = Integer.MIN_VALUE; } } }
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { // Is the method an initializer? if (ClassUtil.isInitializer(programMethod.getName(programClass))) { // Does it have exactly one parameter? if (ClassUtil.internalMethodParameterCount(programMethod.getDescriptor(programClass)) == 1) { // Is the parameter a non-null reference? Value value = StoringInvocationUnit.getMethodParameterValue(programMethod, 1); if (value != null && value.computationalType() == Value.TYPE_REFERENCE && value.referenceValue().isNotNull() == Value.ALWAYS) { // Does the method initialize the field? programMethod.attributesAccept(programClass, this); } else { wrapCounter = Integer.MIN_VALUE; } } else { wrapCounter = Integer.MIN_VALUE; } } }
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { // Is the method an initializer? if (ClassUtil.isInitializer(programMethod.getName(programClass))) { // Does it have exactly one parameter? if (ClassUtil.internalMethodParameterCount(programMethod.getDescriptor(programClass)) == 1) { // Is the parameter a non-null reference? Value value = StoringInvocationUnit.getMethodParameterValue(programMethod, 1); if (value != null && value.computationalType() == Value.TYPE_REFERENCE && value.referenceValue().isNotNull() == Value.ALWAYS) { // Does the method initialize the field? programMethod.attributesAccept(programClass, this); } else { wrapCounter = Integer.MIN_VALUE; } } else { wrapCounter = Integer.MIN_VALUE; } } }
stack.apop().isNotNull()); break;
stack.apop().isNotNull()); break;
stack.apop().isNotNull()); break;
stack.apop().isNotNull()); break;