Location location = getLocation();
if (trackValueNumbers) {
try {
ValueNumberFrame vnaFrame = vnaDataflow.getFactAtLocation(location);
Set<ValueNumber> nonnullParameters = UnconditionalValueDerefAnalysis.checkAllNonNullParams(location, vnaFrame,
cpg, null, null, typeDataflow);
if (!nonnullParameters.isEmpty()) {
IsNullValue kaboom = IsNullValue.noKaboomNonNullValue(location);
IsNullValueFrame frame = getFrame();
for (ValueNumber vn : nonnullParameters) {
IsNullValue knownValue = frame.getKnownValue(vn);
if (knownValue != null && !knownValue.isDefinitelyNotNull()) {
if (knownValue.isDefinitelyNull()) {
frame.setTop();
return;
}
frame.setKnownValue(vn, kaboom);
}
for (int i = 0; i < vnaFrame.getNumSlots(); i++) {
IsNullValue value = frame.getValue(i);
if (vnaFrame.getValue(i).equals(vn) && !value.isDefinitelyNotNull()) {
frame.setValue(i, kaboom);
if (value.isDefinitelyNull()) {
frame.setTop();
return;
}