@Override public void visit(Field obj) { XField xField = getXField(); if(!xField.isStatic() && (xField.isPrivate() || xField.isFinal()) && xField.isReferenceType()) { allowedFields.add(xField.getFieldDescriptor()); } }
public boolean checkForInitialization(XField f) { if (!f.isReferenceType() || f.isFinal()) { return false; } NullnessAnnotation annotation = AnalysisContext.currentAnalysisContext().getNullnessAnnotationDatabase() .getResolvedAnnotation(f, false); boolean isNonnull = annotation == NullnessAnnotation.NONNULL; return isNonnull; }
public void killAllLoads(boolean primitiveOnly) { if (!REDUNDANT_LOAD_ELIMINATION) { return; } FieldSummary fieldSummary = AnalysisContext.currentAnalysisContext().getFieldSummary(); HashSet<AvailableLoad> killMe = new HashSet<>(); for (AvailableLoad availableLoad : getAvailableLoadMap().keySet()) { XField field = availableLoad.getField(); if ((!primitiveOnly || !field.isReferenceType()) && (field.isVolatile() || !field.isFinal() && (!USE_WRITTEN_OUTSIDE_OF_CONSTRUCTOR || fieldSummary.isWrittenOutsideOfConstructor(field)))) { if (RLE_DEBUG) { System.out.println("KILLING load of " + availableLoad + " in " + this); } killMe.add(availableLoad); } } killAvailableLoads(killMe); }
.addField(f).describe("FIELD_ON").addSourceLineRange(this, startPC, endPC)); } else { if(declaration.isReferenceType()) { currentDoubleCheckField = declaration; assignPC = getPC();
if (f.isReferenceType()) { try { ValueNumberDataflow vnaDataflow = getClassContext().getValueNumberDataflow(getMethod()); priority++; if (f.isReferenceType()) { FieldDescriptor fieldInfo = f.getFieldDescriptor(); String dottedClass = DeepSubtypeAnalysis.getComponentClass(fieldInfo.getSignature());
@Override public void visit(Field obj) { XField xField = getXField(); if(!xField.isStatic() && (xField.isPrivate() || xField.isFinal()) && xField.isReferenceType()) { allowedFields.add(xField.getFieldDescriptor()); } }
public boolean checkForInitialization(XField f) { if (!f.isReferenceType() || f.isFinal()) { return false; } NullnessAnnotation annotation = AnalysisContext.currentAnalysisContext().getNullnessAnnotationDatabase() .getResolvedAnnotation(f, false); boolean isNonnull = annotation == NullnessAnnotation.NONNULL; return isNonnull; }
public void killAllLoads(boolean primitiveOnly) { if (!REDUNDANT_LOAD_ELIMINATION) { return; } FieldSummary fieldSummary = AnalysisContext.currentAnalysisContext().getFieldSummary(); HashSet<AvailableLoad> killMe = new HashSet<AvailableLoad>(); for (AvailableLoad availableLoad : getAvailableLoadMap().keySet()) { XField field = availableLoad.getField(); if ((!primitiveOnly || !field.isReferenceType()) && (field.isVolatile() || !field.isFinal() && (!USE_WRITTEN_OUTSIDE_OF_CONSTRUCTOR || fieldSummary.isWrittenOutsideOfConstructor(field)))) { if (RLE_DEBUG) { System.out.println("KILLING load of " + availableLoad + " in " + this); } killMe.add(availableLoad); } } killAvailableLoads(killMe); }
.addField(f).describe("FIELD_ON").addSourceLineRange(this, startPC, endPC)); } else { if(declaration.isReferenceType()) { currentDoubleCheckField = declaration; assignPC = getPC();
if (f.isReferenceType()) { try { ValueNumberDataflow vnaDataflow = getClassContext().getValueNumberDataflow(getMethod()); priority++; if (f.isReferenceType()) { FieldDescriptor fieldInfo = f.getFieldDescriptor(); String dottedClass = DeepSubtypeAnalysis.getComponentClass(fieldInfo.getSignature());