Class JvmTaintReduceOperator
- java.lang.Object
-
- proguard.analysis.cpa.jvm.operators.JvmDefaultReduceOperator<SetAbstractState<JvmTaintSource>>
-
- proguard.analysis.cpa.jvm.domain.taint.JvmTaintReduceOperator
-
- All Implemented Interfaces:
ReduceOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>
,JvmAbstractStateFactory<SetAbstractState<JvmTaintSource>>
public class JvmTaintReduceOperator extends JvmDefaultReduceOperator<SetAbstractState<JvmTaintSource>>
ThisReduceOperator
inherits all the functionalities of aJvmDefaultReduceOperator
and adjusts the return type to be theJvmTaintAbstractState
.
-
-
Constructor Summary
Constructors Constructor Description JvmTaintReduceOperator(boolean reduceHeap)
Create the taint reduce operator for the JVM.JvmTaintReduceOperator(boolean reduceHeap, java.util.Map<Signature,java.util.Set<JvmTaintSource>> taintSources)
Create the taint reduce operator for the JVM.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JvmTaintAbstractState
createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame, JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap, MapAbstractState<java.lang.String,SetAbstractState<JvmTaintSource>> staticFields)
Returns an instance of JvmAbstractState.AbstractState
onMethodEntry(AbstractState reducedState, boolean isCallStatic)
Performs additional operations on the reduced state (i.e.-
Methods inherited from class proguard.analysis.cpa.jvm.operators.JvmDefaultReduceOperator
reduceHeap, reduceImpl, reduceStaticFields
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface proguard.analysis.cpa.bam.ReduceOperator
reduce
-
-
-
-
Constructor Detail
-
JvmTaintReduceOperator
public JvmTaintReduceOperator(boolean reduceHeap)
Create the taint reduce operator for the JVM.- Parameters:
reduceHeap
- whether reduction of the heap is performed
-
JvmTaintReduceOperator
public JvmTaintReduceOperator(boolean reduceHeap, java.util.Map<Signature,java.util.Set<JvmTaintSource>> taintSources)
Create the taint reduce operator for the JVM.- Parameters:
reduceHeap
- whether reduction of the heap is performedtaintSources
- collection of taint sources
-
-
Method Detail
-
createJvmAbstractState
public JvmTaintAbstractState createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame, JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap, MapAbstractState<java.lang.String,SetAbstractState<JvmTaintSource>> staticFields)
Description copied from interface:JvmAbstractStateFactory
Returns an instance of JvmAbstractState.
-
onMethodEntry
public AbstractState onMethodEntry(AbstractState reducedState, boolean isCallStatic)
Description copied from interface:ReduceOperator
Performs additional operations on the reduced state (i.e. on the method entry state). Does nothing by default. NB: since this is still part of the reduction operation the result of this method is the state used by the analysis and part of the cache key for the called method.- Parameters:
reducedState
- reduced state (i.e., the entry state of the called method)isCallStatic
- is the called method static- Returns:
- the state after performing additional operations or untouched state by default
-
-