本文整理匯總了Java中edu.umd.cs.findbugs.ba.vna.AvailableLoad類的典型用法代碼示例。如果您正苦於以下問題:Java AvailableLoad類的具體用法?Java AvailableLoad怎麽用?Java AvailableLoad使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
AvailableLoad類屬於edu.umd.cs.findbugs.ba.vna包,在下文中一共展示了AvailableLoad類的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: visitPUTFIELD
import edu.umd.cs.findbugs.ba.vna.AvailableLoad; //導入依賴的package包/類
@Override
public void visitPUTFIELD(PUTFIELD obj) {
if (getNumWordsConsumed(obj) != 2) {
super.visitPUTFIELD(obj);
return;
}
IsNullValue nullValueStored = null;
try {
nullValueStored = getFrame().getTopValue();
} catch (DataflowAnalysisException e1) {
AnalysisContext.logError("Oops", e1);
}
super.visitPUTFIELD(obj);
XField field = XFactory.createXField(obj, cpg);
if (nullValueStored != null && ValueNumberAnalysisFeatures.REDUNDANT_LOAD_ELIMINATION)
try {
ValueNumberFrame vnaFrameBefore = vnaDataflow.getFactAtLocation(getLocation());
ValueNumber refValue = vnaFrameBefore.getStackValue(1);
AvailableLoad load = new AvailableLoad(refValue, field);
ValueNumberFrame vnaFrameAfter = vnaDataflow.getFactAfterLocation(getLocation());
ValueNumber[] newValueNumbersForField = vnaFrameAfter.getAvailableLoad(load);
if (newValueNumbersForField != null && trackValueNumbers)
for (ValueNumber v : newValueNumbersForField)
getFrame().setKnownValue(v, nullValueStored);
} catch (DataflowAnalysisException e) {
AnalysisContext.logError("Oops", e);
}
}