public abstract class CallSiteReference extends ProgramCounter implements com.ibm.wala.shrikeBT.BytecodeConstants, ContextItem
ProgramCounter
, since this class does not maintain a pointer to the
containing IR
(or CGNode
) anyway. If using a hashtable of CallSiteReference from different IRs, you probably want
to use a wrapper which also holds a pointer to the governing CGNode.ContextItem.Value<T>
NO_SOURCE_LINE_NUMBER
JBC_aaload, JBC_aastore, JBC_aconst_null, JBC_aload, JBC_aload_0, JBC_aload_1, JBC_aload_2, JBC_aload_3, JBC_anewarray, JBC_areturn, JBC_arraylength, JBC_astore, JBC_astore_0, JBC_astore_1, JBC_astore_2, JBC_astore_3, JBC_athrow, JBC_baload, JBC_bastore, JBC_bipush, JBC_caload, JBC_castore, JBC_checkcast, JBC_d2f, JBC_d2i, JBC_d2l, JBC_dadd, JBC_daload, JBC_dastore, JBC_dcmpg, JBC_dcmpl, JBC_dconst_0, JBC_dconst_1, JBC_ddiv, JBC_dload, JBC_dload_0, JBC_dload_1, JBC_dload_2, JBC_dload_3, JBC_dmul, JBC_dneg, JBC_drem, JBC_dreturn, JBC_dstore, JBC_dstore_0, JBC_dstore_1, JBC_dstore_2, JBC_dstore_3, JBC_dsub, JBC_dup, JBC_dup_x1, JBC_dup_x2, JBC_dup2, JBC_dup2_x1, JBC_dup2_x2, JBC_f2d, JBC_f2i, JBC_f2l, JBC_fadd, JBC_faload, JBC_fastore, JBC_fcmpg, JBC_fcmpl, JBC_fconst_0, JBC_fconst_1, JBC_fconst_2, JBC_fdiv, JBC_fload, JBC_fload_0, JBC_fload_1, JBC_fload_2, JBC_fload_3, JBC_fmul, JBC_fneg, JBC_frem, JBC_freturn, JBC_fstore, JBC_fstore_0, JBC_fstore_1, JBC_fstore_2, JBC_fstore_3, JBC_fsub, JBC_getfield, JBC_getstatic, JBC_goto, JBC_goto_w, JBC_i2d, JBC_i2f, JBC_i2l, JBC_iadd, JBC_iaload, JBC_iand, JBC_iastore, JBC_iconst_0, JBC_iconst_1, JBC_iconst_2, JBC_iconst_3, JBC_iconst_4, JBC_iconst_5, JBC_iconst_m1, JBC_idiv, JBC_if_acmpeq, JBC_if_acmpne, JBC_if_icmpeq, JBC_if_icmpge, JBC_if_icmpgt, JBC_if_icmple, JBC_if_icmplt, JBC_if_icmpne, JBC_ifeq, JBC_ifge, JBC_ifgt, JBC_ifle, JBC_iflt, JBC_ifne, JBC_ifnonnull, JBC_ifnull, JBC_iinc, JBC_iload, JBC_iload_0, JBC_iload_1, JBC_iload_2, JBC_iload_3, JBC_impdep1, JBC_impdep2, JBC_imul, JBC_ineg, JBC_instanceof, JBC_int2byte, JBC_int2char, JBC_int2short, JBC_invokeinterface, JBC_invokespecial, JBC_invokestatic, JBC_invokevirtual, JBC_ior, JBC_irem, JBC_ireturn, JBC_ishl, JBC_ishr, JBC_istore, JBC_istore_0, JBC_istore_1, JBC_istore_2, JBC_istore_3, JBC_isub, JBC_iushr, JBC_ixor, JBC_jsr, JBC_jsr_w, JBC_l2d, JBC_l2f, JBC_l2i, JBC_ladd, JBC_laload, JBC_land, JBC_lastore, JBC_lcmp, JBC_lconst_0, JBC_lconst_1, JBC_ldc, JBC_ldc_w, JBC_ldc2_w, JBC_ldiv, JBC_length, JBC_lload, JBC_lload_0, JBC_lload_1, JBC_lload_2, JBC_lload_3, JBC_lmul, JBC_lneg, JBC_lookupswitch, JBC_lor, JBC_lrem, JBC_lreturn, JBC_lshl, JBC_lshr, JBC_lstore, JBC_lstore_0, JBC_lstore_1, JBC_lstore_2, JBC_lstore_3, JBC_lsub, JBC_lushr, JBC_lxor, JBC_monitorenter, JBC_monitorexit, JBC_multianewarray, JBC_name, JBC_new, JBC_newarray, JBC_nop, JBC_pop, JBC_pop2, JBC_putfield, JBC_putstatic, JBC_ret, JBC_return, JBC_saload, JBC_sastore, JBC_sipush, JBC_swap, JBC_tableswitch, JBC_wide, JBC_xxxunusedxxx
Modifier | Constructor and Description |
---|---|
protected |
CallSiteReference(int programCounter,
MethodReference declaredTarget) |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
A Program Counter value is enough to uniquely identify a call site reference within a method.
|
MethodReference |
getDeclaredTarget()
Return the Method that this call site calls.
|
abstract com.ibm.wala.shrikeBT.IInvokeInstruction.IDispatch |
getInvocationCode()
Return one of INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, or INVOKEINTERFACE
|
String |
getInvocationString() |
protected String |
getInvocationString(com.ibm.wala.shrikeBT.IInvokeInstruction.IDispatch invocationCode) |
int |
hashCode() |
boolean |
isDispatch() |
boolean |
isFixed() |
boolean |
isInterface()
Is this an invokeinterface call site?
|
boolean |
isSpecial()
Is this an invokespecial call site?
|
boolean |
isStatic()
Is this an invokestatic call site?
|
boolean |
isVirtual()
Is this an invokevirtual call site?
|
static CallSiteReference |
make(int programCounter,
MethodReference declaredTarget,
com.ibm.wala.shrikeBT.IInvokeInstruction.IDispatch invocationCode)
This factory method plays a little game to avoid storing the invocation code in the object; this saves a byte (probably
actually a whole word) in each created object.
|
String |
toString() |
getProgramCounter
protected CallSiteReference(int programCounter, MethodReference declaredTarget)
programCounter
- Index into bytecode describing this instructiondeclaredTarget
- The method target as declared at the call sitepublic int hashCode()
hashCode
in class ProgramCounter
public boolean equals(Object obj)
ProgramCounter
equals
in class ProgramCounter
public static CallSiteReference make(int programCounter, MethodReference declaredTarget, com.ibm.wala.shrikeBT.IInvokeInstruction.IDispatch invocationCode)
public MethodReference getDeclaredTarget()
public abstract com.ibm.wala.shrikeBT.IInvokeInstruction.IDispatch getInvocationCode()
public String toString()
toString
in class ProgramCounter
protected String getInvocationString(com.ibm.wala.shrikeBT.IInvokeInstruction.IDispatch invocationCode)
public String getInvocationString()
public final boolean isInterface()
public final boolean isVirtual()
public final boolean isSpecial()
public boolean isStatic()
public boolean isFixed()
public boolean isDispatch()
Copyright © 2019. All rights reserved.