本文整理汇总了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);
}
}