public class BypassMethodTargetSelector extends Object implements MethodTargetSelector
Modifier and Type | Field and Description |
---|---|
protected IClassHierarchy |
cha
Governing class hierarchy.
|
protected MethodTargetSelector |
parent
target selector to use for non-bypassed calls
|
Constructor and Description |
---|
BypassMethodTargetSelector(MethodTargetSelector parent,
Map<MethodReference,MethodSummary> methodSummaries,
Set<Atom> ignoredPackages,
IClassHierarchy cha) |
Modifier and Type | Method and Description |
---|---|
protected boolean |
canIgnore(MemberReference m) |
protected SyntheticMethod |
findOrCreateSyntheticMethod(IMethod m,
boolean isStatic) |
protected SyntheticMethod |
findOrCreateSyntheticMethod(MethodReference m,
boolean isStatic) |
MethodSummary |
generateNoOp(MethodReference m,
boolean isStatic)
Generate a
MethodSummary which is the "standard" representation of a method
that does nothing. |
static MethodSummary |
generateStandardNoOp(Language l,
MethodReference m,
boolean isStatic)
Generate a
MethodSummary which is the "standard" representation of a method
that does nothing. |
IMethod |
getCalleeTarget(CGNode caller,
CallSiteReference site,
IClass dispatchType)
Check to see if a particular call site should be bypassed, before checking normal resolution of the receiver.
|
protected IClassHierarchy |
getClassHierarchy() |
protected final IClassHierarchy cha
protected final MethodTargetSelector parent
public BypassMethodTargetSelector(MethodTargetSelector parent, Map<MethodReference,MethodSummary> methodSummaries, Set<Atom> ignoredPackages, IClassHierarchy cha)
parent
- methodSummaries
- ignoredPackages
- cha
- public IMethod getCalleeTarget(CGNode caller, CallSiteReference site, IClass dispatchType)
getCalleeTarget
in interface MethodTargetSelector
caller
- the GCNode in the call graph containing the callsite
- the call site reference of the call sitedispatchType
- the type of the target object or nullIllegalArgumentException
- if site is nullprotected SyntheticMethod findOrCreateSyntheticMethod(MethodReference m, boolean isStatic)
m
- a method referenceprotected SyntheticMethod findOrCreateSyntheticMethod(IMethod m, boolean isStatic)
m
- a method referencepublic static MethodSummary generateStandardNoOp(Language l, MethodReference m, boolean isStatic)
MethodSummary
which is the "standard" representation of a method
that does nothing.public MethodSummary generateNoOp(MethodReference m, boolean isStatic)
MethodSummary
which is the "standard" representation of a method
that does nothing. Subclasses may override this method to implement alternative semantics
concerning what "do nothing" means.protected boolean canIgnore(MemberReference m)
m
- protected IClassHierarchy getClassHierarchy()