edu.umd.cs.findbugs.ba.vna

Class ValueNumberFrame

public class ValueNumberFrame extends Frame<ValueNumber> implements ValueNumberAnalysisFeatures

A dataflow value representing a Java stack frame with value number information.

Author: David Hovemeyer

See Also: ValueNumber ValueNumberAnalysis

Field Summary
booleanphiNodeForLoads
Constructor Summary
ValueNumberFrame(int numLocals)
Method Summary
voidaddAvailableLoad(AvailableLoad availableLoad, ValueNumber[] value)
Add an available load.
StringavailableLoadMapAsString()
booleanfromMatchingLoads(ValueNumber v1, ValueNumber v2)
booleanfuzzyMatch(ValueNumber v1, ValueNumber v2)
ValueNumber[]getAvailableLoad(AvailableLoad availableLoad)
Look for an available load.
booleanhaveMatchingFlags(ValueNumber v1, ValueNumber v2)
voidkillAllLoads()
Kill all loads.
voidkillAllLoadsOf(ValueNumber v)
Kill all loads.
voidkillLoadsOfField(XField field)
Kill all loads of given field.
voidkillLoadsWithSimilarName(String className, String methodName)
Collection<ValueNumber>valueNumbersForLoads()

Field Detail

phiNodeForLoads

public boolean phiNodeForLoads

Constructor Detail

ValueNumberFrame

public ValueNumberFrame(int numLocals)

Method Detail

addAvailableLoad

public void addAvailableLoad(AvailableLoad availableLoad, ValueNumber[] value)
Add an available load.

Parameters: availableLoad the AvailableLoad (reference and field) value the value(s) loaded

availableLoadMapAsString

public String availableLoadMapAsString()

fromMatchingLoads

public boolean fromMatchingLoads(ValueNumber v1, ValueNumber v2)

fuzzyMatch

public boolean fuzzyMatch(ValueNumber v1, ValueNumber v2)

getAvailableLoad

public ValueNumber[] getAvailableLoad(AvailableLoad availableLoad)
Look for an available load.

Parameters: availableLoad the AvailableLoad (reference and field)

Returns: the value(s) available, or null if no matching entry is found

haveMatchingFlags

public boolean haveMatchingFlags(ValueNumber v1, ValueNumber v2)

Parameters: v1 v2

Returns: true if v1 and v2 have a flag in common

killAllLoads

public void killAllLoads()
Kill all loads. This conservatively handles method calls where we don't really know what fields might be assigned.

killAllLoadsOf

public void killAllLoadsOf(ValueNumber v)
Kill all loads. This conservatively handles method calls where we don't really know what fields might be assigned.

killLoadsOfField

public void killLoadsOfField(XField field)
Kill all loads of given field.

Parameters: field the field

killLoadsWithSimilarName

public void killLoadsWithSimilarName(String className, String methodName)

valueNumbersForLoads

public Collection<ValueNumber> valueNumbersForLoads()
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.