Package edu.umd.cs.findbugs
Class OpcodeStack.Item
- java.lang.Object
-
- edu.umd.cs.findbugs.OpcodeStack.Item
-
- Enclosing class:
- OpcodeStack
public static class OpcodeStack.Item extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceOpcodeStack.Item.SpecialKind
-
Field Summary
Fields Modifier and Type Field Description static intAVERAGE_COMPUTED_USING_DIVISIONstatic intFILE_OPENED_IN_APPEND_MODEstatic intFILE_SEPARATOR_STRINGstatic intFLOAT_MATHstatic intHASHCODE_INTstatic intHASHCODE_INT_REMAINDERstatic intINTEGER_SUMstatic intLOW_8_BITS_CLEARstatic intMATH_ABSstatic intNASTY_FLOAT_MATHstatic intNEWLY_ALLOCATEDstatic intNON_NEGATIVEstatic intNONZERO_MEANS_NULLstatic intNOT_SPECIALstatic intRANDOM_INTstatic intRANDOM_INT_REMAINDERstatic intSERVLET_REQUEST_TAINTEDstatic intSIGNED_BYTEstatic java.lang.ObjectUNKNOWNstatic intZERO_MEANS_NULL
-
Constructor Summary
Constructors Constructor Description Item()Item(OpcodeStack.Item it)Item(OpcodeStack.Item it, int reg)Item(java.lang.String signature)Item(java.lang.String signature, int constValue)Item(java.lang.String signature, FieldAnnotation f)Item(java.lang.String signature, FieldAnnotation f, int fieldLoadedFromRegister)Item(java.lang.String signature, java.lang.Object constantValue)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleancheckForIntegerMinValue()voidclearNewlyAllocated()OpcodeStack.ItemcloneAndSetSpecialKind(int specialKind)booleancouldBeZero()booleanequals(java.lang.Object o)java.lang.ObjectgetConstant()Returns a constant value for this Item, if known.java.lang.StringgetElementSignature()Deprecated.FieldAnnotationgetFieldAnnotation()Deprecated.intgetFieldLoadedFromRegister()java.lang.StringgetHttpParameterName()intgetInjectionPC()org.apache.bcel.classfile.JavaClassgetJavaClass()Returns null for primitive and arraysintgetPC()intgetRegisterNumber()XMethodgetReturnValueOf()java.lang.StringgetSignature()intgetSize()intgetSpecialKind()java.lang.ObjectgetUserValue()gets the detector specified value for this itemXFieldgetXField()booleanhasConstantValue(int value)booleanhasConstantValue(long value)inthashCode()booleanisArray()booleanisBooleanNullnessValue()booleanisInitialParameter()booleanisNewlyAllocated()booleanisNonNegative()booleanisNull()booleanisPrimitive()booleanisServletParameterTainted()booleanisWide()voidmakeCrossMethod()static OpcodeStack.Itemmerge(OpcodeStack.Item i1, OpcodeStack.Item i2)booleanmustBeZero()static OpcodeStack.ItemnullItem(java.lang.String signature)voidsetLoadedFromField(XField f, int fieldLoadedFromRegister)voidsetPC(int pc)voidsetServletParameterTainted()voidsetSpecialKind(int specialKind)voidsetUserValue(java.lang.Object value)attaches a detector specified value to this itemjava.lang.StringtoString()booleanvalueCouldBeNegative()
-
-
-
Field Detail
-
NOT_SPECIAL
@SpecialKind public static final int NOT_SPECIAL
- See Also:
- Constant Field Values
-
SIGNED_BYTE
@SpecialKind public static final int SIGNED_BYTE
- See Also:
- Constant Field Values
-
RANDOM_INT
@SpecialKind public static final int RANDOM_INT
- See Also:
- Constant Field Values
-
LOW_8_BITS_CLEAR
@SpecialKind public static final int LOW_8_BITS_CLEAR
- See Also:
- Constant Field Values
-
HASHCODE_INT
@SpecialKind public static final int HASHCODE_INT
- See Also:
- Constant Field Values
-
INTEGER_SUM
@SpecialKind public static final int INTEGER_SUM
- See Also:
- Constant Field Values
-
AVERAGE_COMPUTED_USING_DIVISION
@SpecialKind public static final int AVERAGE_COMPUTED_USING_DIVISION
- See Also:
- Constant Field Values
-
FLOAT_MATH
@SpecialKind public static final int FLOAT_MATH
- See Also:
- Constant Field Values
-
RANDOM_INT_REMAINDER
@SpecialKind public static final int RANDOM_INT_REMAINDER
- See Also:
- Constant Field Values
-
HASHCODE_INT_REMAINDER
@SpecialKind public static final int HASHCODE_INT_REMAINDER
- See Also:
- Constant Field Values
-
FILE_SEPARATOR_STRING
@SpecialKind public static final int FILE_SEPARATOR_STRING
- See Also:
- Constant Field Values
-
MATH_ABS
@SpecialKind public static final int MATH_ABS
- See Also:
- Constant Field Values
-
NON_NEGATIVE
@SpecialKind public static final int NON_NEGATIVE
- See Also:
- Constant Field Values
-
NASTY_FLOAT_MATH
@SpecialKind public static final int NASTY_FLOAT_MATH
- See Also:
- Constant Field Values
-
FILE_OPENED_IN_APPEND_MODE
@SpecialKind public static final int FILE_OPENED_IN_APPEND_MODE
- See Also:
- Constant Field Values
-
SERVLET_REQUEST_TAINTED
@SpecialKind public static final int SERVLET_REQUEST_TAINTED
- See Also:
- Constant Field Values
-
NEWLY_ALLOCATED
@SpecialKind public static final int NEWLY_ALLOCATED
- See Also:
- Constant Field Values
-
ZERO_MEANS_NULL
@SpecialKind public static final int ZERO_MEANS_NULL
- See Also:
- Constant Field Values
-
NONZERO_MEANS_NULL
@SpecialKind public static final int NONZERO_MEANS_NULL
- See Also:
- Constant Field Values
-
UNKNOWN
public static final java.lang.Object UNKNOWN
-
-
Constructor Detail
-
Item
public Item(java.lang.String signature, int constValue)
-
Item
public Item(java.lang.String signature)
-
Item
public Item(OpcodeStack.Item it)
-
Item
public Item(OpcodeStack.Item it, int reg)
-
Item
public Item(java.lang.String signature, FieldAnnotation f)
-
Item
public Item(java.lang.String signature, FieldAnnotation f, int fieldLoadedFromRegister)
-
Item
public Item(java.lang.String signature, java.lang.Object constantValue)
-
Item
public Item()
-
-
Method Detail
-
makeCrossMethod
public void makeCrossMethod()
-
getSize
public int getSize()
-
getPC
public int getPC()
-
setPC
public void setPC(int pc)
-
isWide
public boolean isWide()
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
merge
public static OpcodeStack.Item merge(OpcodeStack.Item i1, OpcodeStack.Item i2)
-
getFieldLoadedFromRegister
public int getFieldLoadedFromRegister()
-
setLoadedFromField
public void setLoadedFromField(XField f, int fieldLoadedFromRegister)
-
getHttpParameterName
@CheckForNull public java.lang.String getHttpParameterName()
-
getInjectionPC
public int getInjectionPC()
-
nullItem
public static OpcodeStack.Item nullItem(java.lang.String signature)
-
getJavaClass
@CheckForNull public org.apache.bcel.classfile.JavaClass getJavaClass() throws java.lang.ClassNotFoundException
Returns null for primitive and arrays- Throws:
java.lang.ClassNotFoundException
-
isArray
public boolean isArray()
-
getElementSignature
@Deprecated public java.lang.String getElementSignature()
Deprecated.
-
isNonNegative
public boolean isNonNegative()
-
isPrimitive
public boolean isPrimitive()
-
getRegisterNumber
public int getRegisterNumber()
-
getSignature
public java.lang.String getSignature()
-
getConstant
public java.lang.Object getConstant()
Returns a constant value for this Item, if known. NOTE: if the value is a constant Class object, the constant value returned is the name of the class.
-
getFieldAnnotation
@Deprecated public FieldAnnotation getFieldAnnotation()
Deprecated.Use getXField instead
-
getXField
public XField getXField()
-
setSpecialKind
public void setSpecialKind(@SpecialKind int specialKind)
- Parameters:
specialKind- The specialKind to set.
-
cloneAndSetSpecialKind
public OpcodeStack.Item cloneAndSetSpecialKind(@SpecialKind int specialKind)
-
getSpecialKind
@SpecialKind public int getSpecialKind()
- Returns:
- Returns the specialKind.
-
isBooleanNullnessValue
public boolean isBooleanNullnessValue()
- Returns:
- Returns the specialKind.
-
setUserValue
public void setUserValue(java.lang.Object value)
attaches a detector specified value to this item- Parameters:
value- the custom value to set
-
getReturnValueOf
@CheckForNull public XMethod getReturnValueOf()
- Returns:
- if this value is the return value of a method, give the method invoked
-
couldBeZero
public boolean couldBeZero()
-
mustBeZero
public boolean mustBeZero()
-
getUserValue
public java.lang.Object getUserValue()
gets the detector specified value for this item- Returns:
- the custom value
-
isServletParameterTainted
public boolean isServletParameterTainted()
-
setServletParameterTainted
public void setServletParameterTainted()
-
valueCouldBeNegative
public boolean valueCouldBeNegative()
-
checkForIntegerMinValue
public boolean checkForIntegerMinValue()
-
isInitialParameter
public boolean isInitialParameter()
- Returns:
- Returns the isInitialParameter.
-
isNull
public boolean isNull()
- Returns:
- Returns the isNull.
-
clearNewlyAllocated
public void clearNewlyAllocated()
-
isNewlyAllocated
public boolean isNewlyAllocated()
-
hasConstantValue
public boolean hasConstantValue(int value)
- Parameters:
i-- Returns:
-
hasConstantValue
public boolean hasConstantValue(long value)
-
-