public class BytecodeAnalysisContextPolicy extends AnalysisContextPolicy<BytecodeAnalysisContext>
| Constructor and Description |
|---|
BytecodeAnalysisContextPolicy() |
| Modifier and Type | Method and Description |
|---|---|
BytecodeAnalysisContext |
allocationContext(BytecodeAnalysisContext context,
int maxHeapContextDepth)
Record the context of a newly heap allocated object.
|
BytecodeAnalysisContext |
calleeContext(PointsToAnalysis bb,
AnalysisObject receiverObject,
BytecodeAnalysisContext callerContext,
MethodTypeFlow callee)
Captures the context of a method invocation.
|
BytecodeAnalysisContext |
getContext(BytecodeLocation bcl) |
BytecodeAnalysisContext |
getContext(BytecodeLocation[] bytecodeLocations) |
BytecodeAnalysisContext |
peel(BytecodeAnalysisContext context,
int maxDepth)
Peels off the least recent labels from the current context, down to
maxDepth depth. |
BytecodeAnalysisContext |
staticCalleeContext(PointsToAnalysis bb,
BytecodeLocation invokeLocation,
BytecodeAnalysisContext callerContext,
MethodTypeFlow callee)
Given the invocation location, caller context and callee this method returns the callee
context for a static invoke.
|
emptyContext, extend, extend, isEmpty, lookupContext, peel, prependpublic BytecodeAnalysisContext peel(BytecodeAnalysisContext context, int maxDepth)
AnalysisContextPolicymaxDepth depth.
Only the most recent labels are kept in the context, preserving the temporal order.peel in class AnalysisContextPolicy<BytecodeAnalysisContext>public BytecodeAnalysisContext calleeContext(PointsToAnalysis bb, AnalysisObject receiverObject, BytecodeAnalysisContext callerContext, MethodTypeFlow callee)
Iterates over the list of context chains of the receiver
object, i.e. the contexts from which it's allocator method was invoked, and extends each of
this chains with the current receiver's analysis object. The
depth of each context chain is bounded to PointstoOptions.MaxCallingContextDepth.
calleeContext in class AnalysisContextPolicy<BytecodeAnalysisContext>bb - the bigbang.receiverObject - invocation's receiver objectcontext chains leading to this invocation
extended with the current receiver objectpublic BytecodeAnalysisContext staticCalleeContext(PointsToAnalysis bb, BytecodeLocation invokeLocation, BytecodeAnalysisContext callerContext, MethodTypeFlow callee)
AnalysisContextPolicystaticCalleeContext in class AnalysisContextPolicy<BytecodeAnalysisContext>public BytecodeAnalysisContext allocationContext(BytecodeAnalysisContext context, int maxHeapContextDepth)
allocationContext in class AnalysisContextPolicy<BytecodeAnalysisContext>context - the BytecodeAnalysisContext of the enclosing methodpublic BytecodeAnalysisContext getContext(BytecodeLocation bcl)
public BytecodeAnalysisContext getContext(BytecodeLocation[] bytecodeLocations)