类 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 java.lang.Object implements ReduceOperator<ContentT>
ThisReduceOperatorsimulates the JVM behavior on a method call. It takes a clone of the callerJvmAbstractState, creates an empty stack and a local variables array with the callee arguments.
-
-
构造器概要
构造器 构造器 说明 DefaultReduceOperator()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<java.lang.String,ContentT> staticFields)protected voidreduceHeap(JvmHeapAbstractState<ContentT> heap, JvmFrameAbstractState<ContentT> reducedFrame, MapAbstractState<java.lang.String,ContentT> reducedStaticFields)Reduces the heap state.JvmAbstractState<ContentT>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<java.lang.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
-
-
-
-
方法详细资料
-
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
protected void reduceStaticFields(MapAbstractState<java.lang.String,ContentT> staticFields)
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<java.lang.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<java.lang.String,ContentT> staticFields)
-
-