类 DefaultReduceOperator<ContentT extends AbstractState<ContentT>>
java.lang.Object
proguard.analysis.cpa.jvm.operators.DefaultReduceOperator<ContentT>
- 类型参数:
ContentT- The content of the jvm states. For example, this can be aSetAbstractStateof taints for taint analysis or aValueAbstractStatefor value analysis.
- 所有已实现的接口:
ReduceOperator<ContentT>
- 直接已知子类:
TaintReduceOperator,ValueReduceOperator
public class DefaultReduceOperator<ContentT extends AbstractState<ContentT>>
extends Object
implements ReduceOperator<ContentT>
This
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.-
构造器概要
构造器构造器说明Create the default reduce operator for the JVM.DefaultReduceOperator(boolean reduceHeap) Create the default reduce operator for the JVM. -
方法概要
修饰符和类型方法说明protected JvmAbstractState<ContentT>createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<ContentT> frame, JvmHeapAbstractState<ContentT> heap, MapAbstractState<String, ContentT> staticFields) protected voidreduceHeap(JvmHeapAbstractState<ContentT> heap, JvmFrameAbstractState<ContentT> reducedFrame, MapAbstractState<String, ContentT> reducedStaticFields) Reduces the heap state.reduceImpl(JvmAbstractState<ContentT> expandedInitialState, JvmCfaNode blockEntryNode, Call call) Creates the initial state of the called procedure discarding the useless information from the state of the caller.protected voidreduceStaticFields(MapAbstractState<String, ContentT> staticFields) Reduces the static fields.从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 proguard.analysis.cpa.bam.ReduceOperator
onMethodEntry, reduce
-
构造器详细资料
-
DefaultReduceOperator
public DefaultReduceOperator()Create the default reduce operator for the JVM. -
DefaultReduceOperator
public DefaultReduceOperator(boolean reduceHeap) Create the default reduce operator for the JVM.- 参数:
reduceHeap- whether reduction of the heap is performed
-
-
方法详细资料
-
reduceImpl
public JvmAbstractState<ContentT> reduceImpl(JvmAbstractState<ContentT> expandedInitialState, JvmCfaNode blockEntryNode, Call call) 从接口复制的说明:ReduceOperatorCreates the initial state of the called procedure discarding the useless information from the state of the caller.- 指定者:
reduceImpl在接口中ReduceOperator<ContentT extends AbstractState<ContentT>>- 参数:
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 procedure- 返回:
- The entry state of the called procedure
-
reduceStaticFields
Reduces the static fields. The default implementation doesn't perform any reduction.- 参数:
staticFields- the static fields map that is modified by this method by performing reduction
-
reduceHeap
protected void reduceHeap(JvmHeapAbstractState<ContentT> heap, JvmFrameAbstractState<ContentT> reducedFrame, MapAbstractState<String, ContentT> reducedStaticFields) Reduces the heap state. The default implementation doesn't perform any reduction.- 参数:
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
-
createJvmAbstractState
protected JvmAbstractState<ContentT> createJvmAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<ContentT> frame, JvmHeapAbstractState<ContentT> heap, MapAbstractState<String, ContentT> staticFields)
-