Package qilin.core.builder.callgraph
Class Kind
java.lang.Object
qilin.core.builder.callgraph.Kind
- All Implemented Interfaces:
Numberable
Enumeration type representing the kind of a call graph edge.
- Author:
- Ondrej Lhotak
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final KindImplicit call to AsyncTask.doInBackground() due to AsyncTask.execute() call.static final KindImplicit call to static initializer.static final KindImplicit call to java.lang.Runnable.run() due to Executor.execute() call.static final KindImplicit call to java.lang.ref.Finalizer.register from new bytecode.static final KindFake edges from our generic callback model.static final KindImplicit call to Handler.handleMessage(android.os.Message) due to Handler.sendxxxxMessagexxxx() call.static final KindDue to explicit invokeinterface instruction.static final Kindstatic final KindImplicit call to finalize() from java.lang.ref.Finalizer.invokeFinalizeMethod().static final KindImplicit call to constructor from java.lang.Class.newInstance().static final KindImplicit call to run() through AccessController.doPrivileged().static final KindDue to call to Class.newInstance(..) when reflection log is enabled.static final KindDue to call to Constructor.newInstance(..).static final KindDue to call to Method.invoke(..).static final KindDue to explicit invokespecial instruction.static final KindDue to explicit invokestatic instruction.static final KindImplicit call to Thread.run() due to Thread.start() call.static final KindDue to explicit invokevirtual instruction. -
Method Summary
Modifier and TypeMethodDescriptionintbooleanstatic booleanisAsyncTask(Kind k) booleanisClinit()Returns true if the call is to static initializer.static booleanReturns true if the call is to static initializer.booleanstatic booleanisExecutor(Kind k) booleanReturns true if the call is due to an explicit invoke statement.static booleanisExplicit(Kind k) Returns true if the call is due to an explicit invoke statement.booleanisFake()static booleanbooleanstatic booleanbooleanReturns true if the call is due to an explicit instance invoke statement.static booleanisInstance(Kind k) Returns true if the call is due to an explicit instance invoke statement.booleanstatic booleanisPrivileged(Kind k) booleanstatic booleanisReflection(Kind k) booleanstatic booleanisReflInvoke(Kind k) booleanstatic booleanbooleanisStatic()Returns true if the call is due to an explicit static invoke statement.static booleanReturns true if the call is due to an explicit static invoke statement.booleanisThread()static booleanbooleanReturns true if the call is due to an explicit virtual invoke statement.static booleanReturns true if the call is due to an explicit virtual invoke statement.name()booleanstatic booleanvoidsetNumber(int num) toString()
-
Field Details
-
INVALID
-
STATIC
Due to explicit invokestatic instruction. -
VIRTUAL
Due to explicit invokevirtual instruction. -
INTERFACE
Due to explicit invokeinterface instruction. -
SPECIAL
Due to explicit invokespecial instruction. -
CLINIT
Implicit call to static initializer. -
GENERIC_FAKE
Fake edges from our generic callback model. -
THREAD
Implicit call to Thread.run() due to Thread.start() call. -
EXECUTOR
Implicit call to java.lang.Runnable.run() due to Executor.execute() call. -
ASYNCTASK
Implicit call to AsyncTask.doInBackground() due to AsyncTask.execute() call. -
FINALIZE
Implicit call to java.lang.ref.Finalizer.register from new bytecode. -
HANDLER
Implicit call to Handler.handleMessage(android.os.Message) due to Handler.sendxxxxMessagexxxx() call. -
INVOKE_FINALIZE
Implicit call to finalize() from java.lang.ref.Finalizer.invokeFinalizeMethod(). -
PRIVILEGED
Implicit call to run() through AccessController.doPrivileged(). -
NEWINSTANCE
Implicit call to constructor from java.lang.Class.newInstance(). -
REFL_INVOKE
Due to call to Method.invoke(..). -
REFL_CONSTR_NEWINSTANCE
Due to call to Constructor.newInstance(..). -
REFL_CLASS_NEWINSTANCE
Due to call to Class.newInstance(..) when reflection log is enabled.
-
-
Method Details
-
name
-
getNumber
public int getNumber()- Specified by:
getNumberin interfaceNumberable
-
setNumber
public void setNumber(int num) - Specified by:
setNumberin interfaceNumberable
-
toString
-
passesParameters
public boolean passesParameters() -
isFake
public boolean isFake() -
isExplicit
public boolean isExplicit()Returns true if the call is due to an explicit invoke statement. -
isInstance
public boolean isInstance()Returns true if the call is due to an explicit instance invoke statement. -
isVirtual
public boolean isVirtual()Returns true if the call is due to an explicit virtual invoke statement. -
isSpecial
public boolean isSpecial() -
isClinit
public boolean isClinit()Returns true if the call is to static initializer. -
isStatic
public boolean isStatic()Returns true if the call is due to an explicit static invoke statement. -
isThread
public boolean isThread() -
isExecutor
public boolean isExecutor() -
isAsyncTask
public boolean isAsyncTask() -
isPrivileged
public boolean isPrivileged() -
isReflection
public boolean isReflection() -
isReflInvoke
public boolean isReflInvoke() -
isHandler
public boolean isHandler() -
passesParameters
-
isFake
-
isExplicit
Returns true if the call is due to an explicit invoke statement. -
isInstance
Returns true if the call is due to an explicit instance invoke statement. -
isVirtual
Returns true if the call is due to an explicit virtual invoke statement. -
isSpecial
-
isClinit
Returns true if the call is to static initializer. -
isStatic
Returns true if the call is due to an explicit static invoke statement. -
isThread
-
isExecutor
-
isAsyncTask
-
isPrivileged
-
isReflection
-
isReflInvoke
-
isHandler
-