public interface

IDCallInfo

implements IDInvokeInfo
com.pnfsoftware.jeb.core.units.code.android.ir.IDCallInfo
Known Indirect Subclasses

Class Overview

dexdec IR invocation information used by invoke instructions to represent calls to methods.

Example:

 result = ob.foo(1, "blah");
          ^^^^^^^^^^^^^^^^^
 

Also refer to the specialized sub-interface IDNewInfo, to represent high-level "new-object" construction (= object allocation, followed by object initialization).

Summary

[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.android.ir.IDElement
Public Methods
abstract IDCallInfo duplicate()
Duplicate this element.
abstract IDExpression getArgument(int index)
Retrieve a method's argument.
abstract int getCountOfArguments()
Get the number of arguments.
abstract DInvokeType getInvokeType()
Get the invocation type.
abstract String getMethodName()
Convenience method to retrieve the target method simplename.
abstract String getMethodSignature()
Get the target method internal signature.
abstract boolean hasThis()
Determine whether the first argument of this method should be the object's this.
abstract void setArgument(int i, IDExpression arg)
Update a method argument.
abstract void upgradeMistypedArguments(DTypeInfo ti, IDGlobalContext gctx)
Apply types on the method parameters.
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.units.code.IInstructionOperand
From interface com.pnfsoftware.jeb.core.units.code.android.ir.IDElement
From interface com.pnfsoftware.jeb.core.units.code.android.ir.IDExpression
From interface com.pnfsoftware.jeb.core.units.code.android.ir.IDInvokeInfo

Public Methods

public abstract IDCallInfo duplicate ()

Duplicate this element.

Returns
  • a deep copy of this element; the type of the duplicated element should be the same as this element's type

public abstract IDExpression getArgument (int index)

Retrieve a method's argument.

public abstract int getCountOfArguments ()

Get the number of arguments. For non-static methods, this is counted.

public abstract DInvokeType getInvokeType ()

Get the invocation type. Note that this differs slightly from the JLS or Dalvik invoke-xxx semantics. Refer to the enumration for details.

public abstract String getMethodName ()

Convenience method to retrieve the target method simplename.

Returns
  • the simple name, e.g. bar for a method Lcom/abc/Foo;->bar(I)V

public abstract String getMethodSignature ()

Get the target method internal signature.

Returns
  • an internal sinature, e.g. Lcom/abc/Foo;->bar(I)V

public abstract boolean hasThis ()

Determine whether the first argument of this method should be the object's this. That is, this method is a convenient way to determine whether the invocation type is either DIRECT, SUPER, VIRTUAL, or INTERFACE.

public abstract void setArgument (int i, IDExpression arg)

Update a method argument.

public abstract void upgradeMistypedArguments (DTypeInfo ti, IDGlobalContext gctx)

Apply types on the method parameters.

Important note: at the IR level, casts should be explicit. Implicit promotions, not requiring a cast, are reserved for AST generation.

Parameters
ti optional type information object, used to record type updates and conflicts
gctx global IR context (mandatory)