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 interface
OpcodeStack.Item.SpecialKind
-
Field Summary
Fields Modifier and Type Field Description static int
AVERAGE_COMPUTED_USING_DIVISION
static int
FILE_OPENED_IN_APPEND_MODE
static int
FILE_SEPARATOR_STRING
static int
FLOAT_MATH
static int
HASHCODE_INT
static int
HASHCODE_INT_REMAINDER
static int
INTEGER_SUM
static int
LOW_8_BITS_CLEAR
static int
MATH_ABS
static int
NASTY_FLOAT_MATH
static int
NEWLY_ALLOCATED
static int
NON_NEGATIVE
static int
NONZERO_MEANS_NULL
static int
NOT_SPECIAL
static int
RANDOM_INT
static int
RANDOM_INT_REMAINDER
static int
SERVLET_REQUEST_TAINTED
static int
SIGNED_BYTE
static java.lang.Object
UNKNOWN
static int
ZERO_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 boolean
checkForIntegerMinValue()
void
clearNewlyAllocated()
OpcodeStack.Item
cloneAndSetSpecialKind(int specialKind)
boolean
couldBeZero()
boolean
equals(java.lang.Object o)
java.lang.Object
getConstant()
Returns a constant value for this Item, if known.java.lang.String
getElementSignature()
Deprecated.FieldAnnotation
getFieldAnnotation()
Deprecated.int
getFieldLoadedFromRegister()
java.lang.String
getHttpParameterName()
int
getInjectionPC()
org.apache.bcel.classfile.JavaClass
getJavaClass()
Returns null for primitive and arraysint
getPC()
int
getRegisterNumber()
XMethod
getReturnValueOf()
java.lang.String
getSignature()
int
getSize()
int
getSpecialKind()
java.lang.Object
getUserValue()
gets the detector specified value for this itemXField
getXField()
boolean
hasConstantValue(int value)
boolean
hasConstantValue(long value)
int
hashCode()
boolean
isArray()
boolean
isBooleanNullnessValue()
boolean
isInitialParameter()
boolean
isNewlyAllocated()
boolean
isNonNegative()
boolean
isNull()
boolean
isPrimitive()
boolean
isServletParameterTainted()
boolean
isWide()
void
makeCrossMethod()
static OpcodeStack.Item
merge(OpcodeStack.Item i1, OpcodeStack.Item i2)
boolean
mustBeZero()
static OpcodeStack.Item
nullItem(java.lang.String signature)
void
setLoadedFromField(XField f, int fieldLoadedFromRegister)
void
setPC(int pc)
void
setServletParameterTainted()
void
setSpecialKind(int specialKind)
void
setUserValue(java.lang.Object value)
attaches a detector specified value to this itemjava.lang.String
toString()
boolean
valueCouldBeNegative()
-
-
-
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:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in 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)
-
-