public class JvmDefaultReduceOperator<StateT extends LatticeAbstractState<StateT>> extends java.lang.Object implements ReduceOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>, JvmAbstractStateFactory<StateT>
ReduceOperator
simulates the JVM behavior on a method call. It takes a clone of the
caller JvmAbstractState
, creates an empty stack and a local variables array with the
callee arguments.Constructor and Description |
---|
JvmDefaultReduceOperator()
Create the default reduce operator for the JVM.
|
JvmDefaultReduceOperator(boolean reduceHeap)
Create the default reduce operator for the JVM.
|
Modifier and Type | Method and Description |
---|---|
protected void |
reduceHeap(JvmHeapAbstractState<StateT> heap,
JvmFrameAbstractState<StateT> reducedFrame,
MapAbstractState<java.lang.String,StateT> reducedStaticFields)
Reduces the heap state.
|
JvmAbstractState<StateT> |
reduceImpl(AbstractState expandedInitialState,
JvmCfaNode blockEntryNode,
Call call)
Creates the initial state of the called procedure discarding the useless information from the
state of the caller.
|
protected void |
reduceStaticFields(MapAbstractState<java.lang.String,StateT> staticFields)
Reduces the static fields.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
onMethodEntry, reduce
createJvmAbstractState
public JvmDefaultReduceOperator()
public JvmDefaultReduceOperator(boolean reduceHeap)
reduceHeap
- whether reduction of the heap is performedpublic JvmAbstractState<StateT> reduceImpl(AbstractState expandedInitialState, JvmCfaNode blockEntryNode, Call call)
ReduceOperator
reduceImpl
in interface ReduceOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>
expandedInitialState
- the entry state of the called procedure before any reductionblockEntryNode
- the entry node of the called procedurecall
- the information of the call to the procedureprotected void reduceStaticFields(MapAbstractState<java.lang.String,StateT> staticFields)
staticFields
- the static fields map that is modified by this method by performing
reductionprotected void reduceHeap(JvmHeapAbstractState<StateT> heap, JvmFrameAbstractState<StateT> reducedFrame, MapAbstractState<java.lang.String,StateT> reducedStaticFields)
heap
- the heap that is modified by this method by performing reductionreducedFrame
- the frame after reduction has been performed on itreducedStaticFields
- the static fields after reduction has been performed on them