Class AstCallGraph.ScriptFakeRoot
java.lang.Object
com.ibm.wala.classLoader.SyntheticMethod
com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod
com.ibm.wala.cast.ipa.callgraph.AstCallGraph.AstFakeRoot
com.ibm.wala.cast.ipa.callgraph.AstCallGraph.ScriptFakeRoot
- All Implemented Interfaces:
IMember, IMethod, ContextItem, IClassHierarchyDweller
- Direct Known Subclasses:
CrossLanguageCallGraph.CrossLanguageFakeRoot, JSCallGraph.JSFakeRoot
- Enclosing class:
AstCallGraph
-
Nested Class Summary
Nested classes/interfaces inherited from interface ContextItem
ContextItem.Value<T>Nested classes/interfaces inherited from interface IMethod
IMethod.SourcePosition -
Field Summary
Fields inherited from class AbstractRootMethod
cache, cha, insts, nextLocal, statementsModifier and TypeFieldDescriptionprotected final IAnalysisCacheViewfinal IClassHierarchyprotected final SSAInstructionFactoryintThe number of the next local value number available for the fake root method.final ArrayList<SSAInstruction> Fields inherited from class SyntheticMethod
declaringClass, NO_STATEMENTS, resolvedMethodModifier and TypeFieldDescriptionfinal IClassstatic final SSAInstruction[]protected final IMethod -
Constructor Summary
ConstructorsConstructorDescriptionScriptFakeRoot(MethodReference rootMethod, IClass declaringClass, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) ScriptFakeRoot(MethodReference rootMethod, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) -
Method Summary
Modifier and TypeMethodDescriptionAdd a New statement of the given typeabstract SSAAbstractInvokeInstructionaddDirectCall(int functionVn, int[] argVns, CallSiteReference callSite) Methods inherited from class AstCallGraph.AstFakeRoot
addGlobalRead, makeControlFlowGraphModifier and TypeMethodDescriptionaddGlobalRead(TypeReference type, String name) makeControlFlowGraph(SSAInstruction[] statements) Create anInducedCFGfrom an instruction array.Methods inherited from class AbstractRootMethod
add1DArrayAllocation, addAllocationWithoutCtor, addCheckcast, addGetArrayField, addGetInstance, addGetStatic, addInvocation, addLocal, addPhi, addReturn, addSetArrayField, addSetInstance, addSetStatic, getInterpreter, getStatements, getValueNumberForByteConstant, getValueNumberForCharConstant, getValueNumberForIntConstant, makeIRModifier and TypeMethodDescriptionadd1DArrayAllocation(TypeReference T, int length) Add a New statement of the given array type and lengthAdd a New statement of the given typeintaddCheckcast(TypeReference[] types, int rv, boolean isPEI) intaddGetArrayField(TypeReference elementType, int baseObject, int indexValue) intaddGetInstance(FieldReference ref, int object) intaddInvocation(int[] params, CallSiteReference site) intaddLocal()intaddPhi(int[] values) addReturn(int vn, boolean isPrimitive) Add a return statementvoidaddSetArrayField(TypeReference elementType, int baseObject, int indexValue, int value) voidaddSetInstance(FieldReference ref, int baseObject, int value) voidaddSetStatic(FieldReference ref, int value) getStatements(SSAOptions options) intgetValueNumberForByteConstant(byte c) intgetValueNumberForCharConstant(char c) intgetValueNumberForIntConstant(int c) makeIR(Context context, SSAOptions options) Most subclasses should override this.Methods inherited from class SyntheticMethod
equals, getAnnotations, getBytecodeStream, getClassHierarchy, getDeclaredExceptions, getDeclaringClass, getDescriptor, getLineNumber, getLocalVariableName, getMaxLocals, getMaxStackHeight, getName, getNumberOfParameters, getParameterSourcePosition, getParameterType, getPoison, getPoisonLevel, getReference, getReturnType, getSelector, getSignature, getSourcePosition, getStatements, hasExceptionHandler, hashCode, hasLocalVariableTable, hasPoison, isAbstract, isAnnotation, isBridge, isClinit, isEnum, isFactoryMethod, isFinal, isInit, isModule, isNative, isPrivate, isProtected, isPublic, isStatic, isSynchronized, isSynthetic, isWalaSynthetic, toStringModifier and TypeMethodDescriptionbooleanGet the annotations on this member, if anyReturn the object that represents the declaring class for this member.something like: (IILjava.lang.String;SLjava.sql.Date;)Ljava.lang.Integer;intgetLineNumber(int bcIndex) getLocalVariableName(int bcIndex, int localNumber) intintgetName()intMethod getNumberOfParameters.getParameterSourcePosition(int paramNum) getParameterType(int i) By convention, for a non-static method, getParameterType(0) is the this pointerbytesomething like: foo(Ljava/langString;)Ljava/lang/Class;something like: com.foo.bar.createLargeOrder(IILjava.lang.String;SLjava.sql.Date;)Ljava.lang.Integer;getSourcePosition(int bcIndex) booleaninthashCode()booleanbooleanbooleanIs this method abstract?booleanbooleanisBridge()Is this method a bridge method? See JLS 3rd Edition 15.12.4.5booleanisClinit()Is this method a class initializer?booleanisEnum()booleanbooleanisFinal()Is this method final?booleanisInit()Is this method an object initializer?booleanisModule()booleanisNative()Is this method native?booleanIs this method private?booleanIs this method protected?booleanisPublic()Is this method public?booleanisStatic()Is this member static?booleanIs this method synchronized?booleanIs this method synthetic, i.e., compiler-generated (this refers to the synthetic flag in java/dex bytecode)booleanIs the implementation of this method a model generated by WALA? For compiler-generated synthetic methods, refer toIMethod.isSynthetic()toString()Methods inherited from interface IMethod
getNumberOfDefaultParameters
-
Constructor Details
-
ScriptFakeRoot
public ScriptFakeRoot(MethodReference rootMethod, IClass declaringClass, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache) -
ScriptFakeRoot
public ScriptFakeRoot(MethodReference rootMethod, IClassHierarchy cha, AnalysisOptions options, IAnalysisCacheView cache)
-
-
Method Details
-
addDirectCall
public abstract SSAAbstractInvokeInstruction addDirectCall(int functionVn, int[] argVns, CallSiteReference callSite) -
addAllocation
Description copied from class:AbstractRootMethodAdd a New statement of the given typeSide effect: adds call to default constructor of given type if one exists.
- Overrides:
addAllocationin classAbstractRootMethod- Returns:
- instruction added, or null
-