Class ReflectiveActionModel
java.lang.Object
pascal.taie.analysis.pta.plugin.util.SolverHolder
pascal.taie.analysis.pta.plugin.util.AbstractModel
pascal.taie.analysis.pta.plugin.reflection.ReflectiveActionModel
- All Implemented Interfaces:
Model
Models reflective-action methods, currently supports
- Class.newInstance()
- Constructor.newInstance(Object[])
- Method.invoke(Object,Object[])
- Field.get(Object)
- Field.set(Object,Object)
- Array.newInstance(Class,int)
-
Field Summary
Fields inherited from class pascal.taie.analysis.pta.plugin.util.AbstractModel
handlers, relevantVarIndexes, relevantVars
Fields inherited from class pascal.taie.analysis.pta.plugin.util.SolverHolder
csManager, emptyContext, heapModel, hierarchy, selector, solver, typeSystem
-
Method Summary
Modifier and TypeMethodDescriptionvoid
arrayNewInstance
(CSVar csVar, PointsToSet pts, Invoke invoke) void
classNewInstance
(CSVar csVar, PointsToSet pts, Invoke invoke) void
constructorNewInstance
(CSVar csVar, PointsToSet pts, Invoke invoke) void
fieldGet
(CSVar csVar, PointsToSet pts, Invoke invoke) void
fieldSet
(CSVar csVar, PointsToSet pts, Invoke invoke) void
methodInvoke
(CSVar csVar, PointsToSet pts, Invoke invoke) Methods inherited from class pascal.taie.analysis.pta.plugin.util.AbstractModel
getArgs, handleNewInvoke, handleNewPointsToSet, isRelevantVar, registerAPIHandler, registerRelevantVarIndexes, registerVarAndHandlers
-
Method Details
-
classNewInstance
@InvokeHandler(signature="<java.lang.Class: java.lang.Object newInstance()>", argIndexes=-1) public void classNewInstance(CSVar csVar, PointsToSet pts, Invoke invoke) -
constructorNewInstance
@InvokeHandler(signature="<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>", argIndexes=-1) public void constructorNewInstance(CSVar csVar, PointsToSet pts, Invoke invoke) -
methodInvoke
@InvokeHandler(signature="<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>", argIndexes={-1,0}) public void methodInvoke(CSVar csVar, PointsToSet pts, Invoke invoke) -
fieldGet
@InvokeHandler(signature="<java.lang.reflect.Field: java.lang.Object get(java.lang.Object)>", argIndexes={-1,0}) public void fieldGet(CSVar csVar, PointsToSet pts, Invoke invoke) -
fieldSet
@InvokeHandler(signature="<java.lang.reflect.Field: void set(java.lang.Object,java.lang.Object)>", argIndexes={-1,0}) public void fieldSet(CSVar csVar, PointsToSet pts, Invoke invoke) -
arrayNewInstance
@InvokeHandler(signature="<java.lang.reflect.Array: java.lang.Object newInstance(java.lang.Class,int)>", argIndexes=0) public void arrayNewInstance(CSVar csVar, PointsToSet pts, Invoke invoke)
-