public class JvmCompositeHeapExpandOperator extends java.lang.Object implements ExpandOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>
ExpandOperator
s applying them elementwise to CompositeHeapJvmAbstractState
s.
Also recovers all the heap nodes that have been discarded at the call site.
Modifier and Type | Field and Description |
---|---|
protected java.util.List<? extends ExpandOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>> |
wrappedExpandOperators |
Constructor and Description |
---|
JvmCompositeHeapExpandOperator(java.util.List<? extends ExpandOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>> wrappedExpandOperators)
Create a composite expand operator from a list of expand operators.
|
Modifier and Type | Method and Description |
---|---|
CompositeHeapJvmAbstractState |
expand(AbstractState expandedInitialState,
AbstractState reducedExitState,
JvmCfaNode blockEntryNode,
Call call)
Reconstructs the state of the caller of a procedure using the information of the expanded
initial state, the reduced exit state, the block entry node (that can be used to retrieve the
CFA subgraph of the function), and the call to the procedure.
|
protected final java.util.List<? extends ExpandOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>> wrappedExpandOperators
public JvmCompositeHeapExpandOperator(java.util.List<? extends ExpandOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>> wrappedExpandOperators)
wrappedExpandOperators
- a list of expand operators with the order matching the structure
of the target JvmReferenceAbstractState
spublic CompositeHeapJvmAbstractState expand(AbstractState expandedInitialState, AbstractState reducedExitState, JvmCfaNode blockEntryNode, Call call)
ExpandOperator
expand
in interface ExpandOperator<JvmCfaNode,JvmCfaEdge,MethodSignature>
expandedInitialState
- the entry state of the called procedure before any reductionreducedExitState
- the state of the called procedure in its exit nodeblockEntryNode
- the entry node of the called procedurecall
- the information of the call to the procedureRebuildOperator
to be solved