| com.pnfsoftware.jeb.core.units.code.android.ir.IDOperation |
Known Indirect Subclasses
|
dexdec IR operation expression. Operations include: arithmetic and bitwise operations,
logical expressions, the ternary (conditional) expression, cast operations, etc.
An operation is made of one operator and 1, 2, or 3 operands:
- 1 operand for unary expressions, e.g a cast
- 2 operands for duary expressions, e.g. an addition
- 3 operands for ternary expressions, e.g. a conditional
Examples:
c = a + 1;
^^^^^
e = x ? c: d;
^^^^^^^^
s = (short)x;
^^^^^^^^
list = (List)obj;
^^^^^^^^^
|
[Expand]
Inherited Constants | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
From interface
com.pnfsoftware.jeb.core.units.code.android.ir.IDElement
| |||||||||||
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| abstract IDOperation |
duplicate()
Duplicate this element.
| ||||||||||
| abstract IDExpression |
getCondFalseExpression()
If this IR is a conditional operation, retrieve the conditional's true expression.
| ||||||||||
| abstract IDPredicate |
getCondPredicate()
If this IR is a conditional operation, retrieve the conditional's predicate.
| ||||||||||
| abstract IDExpression |
getCondTrueExpression()
If this IR is a conditional operation, retrieve the conditional's true expression.
| ||||||||||
| abstract IDExpression | getLeft() | ||||||||||
| abstract IDExpression |
getOperand1()
Retrieve the first operand.
| ||||||||||
| abstract IDExpression |
getOperand2()
Retrieve the second operand.
| ||||||||||
| abstract IJavaOperator |
getOperator()
Get the expression's operator.
| ||||||||||
| abstract JavaOperatorType |
getOperatorType()
This convenience method can be used to retrieve the operator type.
| ||||||||||
| abstract IDPredicate |
getPredicate()
This method is deprecated.
use
getCondPredicate() instead
| ||||||||||
| abstract IDExpression | getRight() | ||||||||||
| abstract boolean |
isCast()
Convenience operation to determine whether this is operation is a cast.
| ||||||||||
| abstract boolean |
isCast(IJavaType wantedType)
Convenience operation to determine whether this is operation is a cast to the provided type.
| ||||||||||
| abstract boolean |
isConditional()
Convenience operation to determine whether this is the tertiary conditional expression.
| ||||||||||
| abstract boolean |
isUnary()
Convenience operation to determine whether this is a unary expression.
| ||||||||||
| abstract void | setLeft(IDExpression exp) | ||||||||||
| abstract void |
setOperand1(IDExpression exp)
Set the first operand.
| ||||||||||
| abstract void |
setOperand2(IDExpression exp)
Set the second operand.
| ||||||||||
| abstract void |
setOperator(JavaOperatorType operatorType, IJavaOperatorFactory of)
Set the expression operator.
| ||||||||||
| abstract void |
setOperator(IJavaOperator operator)
Set the expression operator.
| ||||||||||
| abstract void | setRight(IDExpression exp) | ||||||||||
| abstract void |
updateConversionOperators(DTypeInfo ti, IDGlobalContext gctx)
Upgrade temporary
conversion operators to legal
cast operators. | ||||||||||
|
[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
| |||||||||||
Duplicate this element.
If this IR is a conditional operation, retrieve the conditional's true expression. The same
as getRight().
If this IR is a conditional operation, retrieve the conditional's predicate.
If this IR is a conditional operation, retrieve the conditional's true expression. The same
as getLeft().
Retrieve the first operand. Same as getLeft().
Retrieve the second operand. Same as getRight().
Get the expression's operator.
This convenience method can be used to retrieve the operator type. It is the same as
getOperator().getOperatorType().
Convenience operation to determine whether this is operation is a cast.
Convenience operation to determine whether this is operation is a cast to the provided type.
| wantedType | checked cast type |
|---|
wantedType
Convenience operation to determine whether this is the tertiary conditional expression.
Convenience operation to determine whether this is a unary expression.
Set the first operand. Same as setLeft(IDExpression).
Set the second operand. Same as setRight(IDExpression).
Set the expression operator. Alternate method.
Upgrade temporary conversion operators to legal
cast operators. Ths method should be called once only, on a low-level IR. It is
reserved for internal use.
| ti | optional type information object, used to record type updates and conflicts |
|---|---|
| gctx | global IR context (mandatory) |