public AnalysisContext(@Nonnull Project project) { requireNonNull(project); this.project = project; this.boolPropertySet = new BitSet(); this.lookupFailureCallback = new DelegatingRepositoryLookupFailureCallback(); skippedDueToInvokeDynamic = new HashSet<>(); equalsKindSummary = new EqualsKindSummary(); unreadFieldsData = new UnreadFieldsData(); suppressionMatcher = new SuppressionMatcher(); bridgeTo = new IdentityHashMap<>(); bridgeFrom = new IdentityHashMap<>(); }
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#existsStrongEvidenceForIntendedSerialization(ClassDescriptor)} instead */ @Deprecated public boolean existsStrongEvidenceForIntendedSerialization(ClassDescriptor c) { return data.existsStrongEvidenceForIntendedSerialization(c); }
int priority = bug.getPriority(); if (unreadFields.classesScanned.contains(rb.maskedField.getClassName())) { if (unreadFields.getReadFields().contains(rb.maskedField)) { score1++; if (unreadFields.getWrittenFields().contains(rb.maskedField)) { score1++; if (unreadFields.isWrittenOutsideOfInitialization(rb.maskedField)) { score1++; score1 += 2; if (unreadFields.getReadFields().contains(rb.maskingField)) { score2++; if (unreadFields.getWrittenFields().contains(rb.maskingField)) { score2++; if (unreadFields.isWrittenOutsideOfInitialization(rb.maskingField)) { score2++;
if (!unreadFields.isWrittenInConstructor(f)) { return; } else if (unreadFields.isWrittenDuringInitialization(f) || unreadFields.isWrittenOutsideOfInitialization(f)) { priority = NORMAL_PRIORITY; } else {
int nextOpcode = 0xff & codeBytes[getPC() + 3]; if (nextOpcode != Const.POP && !initializedFields.contains(f) && declaredFields.contains(f) && !containerFields.contains(f) && !unreadFields.isContainerField(xField)) { getNameConstantOperand(), getSigConstantOperand()); int priority = unreadFields.getReadFields().contains(xField) ? NORMAL_PRIORITY : LOW_PRIORITY; boolean priorityLoweredBecauseOfIfNonnullTest = false; if (possibleTarget != null) {
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#isReflexive(XField)} instead */ @Deprecated public boolean isReflexive(XField f) { return data.isReflexive(f); }
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#isWrittenOutsideOfInitialization(XField)} instead */ @Deprecated public boolean isWrittenOutsideOfInitialization(XField f) { return data.isWrittenOutsideOfInitialization(f); }
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#strongEvidenceForIntendedSerialization(ClassDescriptor)} instead */ @Deprecated public void strongEvidenceForIntendedSerialization(ClassDescriptor c) { data.strongEvidenceForIntendedSerialization(c); }
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#isWrittenDuringInitialization(XField)} instead */ @Deprecated public boolean isWrittenDuringInitialization(XField f) { return data.isWrittenDuringInitialization(f); }
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#isWrittenInConstructor(XField)} instead */ @Deprecated public boolean isWrittenInConstructor(XField f) { return data.isWrittenInConstructor(f); }
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#getWrittenFields()} instead */ @Deprecated public Set<? extends XField> getWrittenFields() { return data.getWrittenFields(); }
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#isContainerField(XField)} instead */ @Deprecated public boolean isContainerField(XField f) { return data.isContainerField(f); }
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#getReadFields()} instead */ @Deprecated public Set<? extends XField> getReadFields() { return data.getReadFields(); }
if (!unreadFields.isWrittenInConstructor(f)) { return; } else if (unreadFields.isWrittenDuringInitialization(f) || unreadFields.isWrittenOutsideOfInitialization(f)) { priority = NORMAL_PRIORITY; } else {
int nextOpcode = 0xff & codeBytes[getPC() + 3]; if (nextOpcode != POP && !initializedFields.contains(f) && declaredFields.contains(f) && !containerFields.contains(f) && !unreadFields.isContainerField(xField)) { getNameConstantOperand(), getSigConstantOperand()); int priority = unreadFields.getReadFields().contains(xField) ? NORMAL_PRIORITY : LOW_PRIORITY; boolean priorityLoweredBecauseOfIfNonnullTest = false; if (possibleTarget != null) {
public boolean isWrittenOutsideOfConstructor(XField field) { if (field.isFinal()) { return false; } if (writtenOutsideOfConstructor.contains(field)) { return true; } if (!AnalysisContext.currentAnalysisContext().unreadFieldsAvailable()) { return true; } UnreadFieldsData unreadFields = AnalysisContext.currentAnalysisContext().getUnreadFieldsData(); if (unreadFields.isReflexive(field)) { return true; } return false; }
if (!f.isFinal() && !f.isSynthetic()) { hasMutableField = true; if (unreadFields.isWrittenOutsideOfInitialization(f)) { hasUpdates = true;
return; unreadFields.strongEvidenceForIntendedSerialization(c); } catch (CheckedAnalysisException e) { bugReporter.logError("Error looking up xClass of " + c, e); return; unreadFields.strongEvidenceForIntendedSerialization(c); } catch (CheckedAnalysisException e) { bugReporter.logError("Error looking up xClass of " + c, e);
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#isWrittenDuringInitialization(XField)} instead */ @Deprecated public boolean isWrittenDuringInitialization(XField f) { return data.isWrittenDuringInitialization(f); }
/** * @deprecated Use {@link edu.umd.cs.findbugs.detect.UnreadFieldsData#isWrittenInConstructor(XField)} instead */ @Deprecated public boolean isWrittenInConstructor(XField f) { return data.isWrittenInConstructor(f); }