com.android.dx.cf.code
Interface BytecodeArray.Visitor

All Known Implementing Classes:
BasicBlocker, BytecodeArray.BaseVisitor, CodeObserver
Enclosing class:
BytecodeArray

public static interface BytecodeArray.Visitor

Instruction visitor interface.


Method Summary
 int getPreviousOffset()
          Get previous bytecode offset
 void setPreviousOffset(int offset)
          Set previous bytecode offset
 void visitBranch(int opcode, int offset, int length, int target)
          Visits an instruction which has a branch target argument.
 void visitConstant(int opcode, int offset, int length, Constant cst, int value)
          Visits an instruction which has a (possibly synthetic) constant argument, and possibly also an additional literal integer argument.
 void visitInvalid(int opcode, int offset, int length)
          Visits an invalid instruction.
 void visitLocal(int opcode, int offset, int length, int idx, Type type, int value)
          Visits an instruction which has a local variable index argument.
 void visitNewarray(int offset, int length, CstType type, ArrayList<Constant> initVals)
          Visits a newarray instruction.
 void visitNoArgs(int opcode, int offset, int length, Type type)
          Visits an instruction which has no inline arguments (implicit or explicit).
 void visitSwitch(int opcode, int offset, int length, SwitchList cases, int padding)
          Visits a switch instruction.
 

Method Detail

visitInvalid

void visitInvalid(int opcode,
                  int offset,
                  int length)
Visits an invalid instruction.

Parameters:
opcode - the opcode
offset - offset to the instruction
length - length of the instruction, in bytes

visitNoArgs

void visitNoArgs(int opcode,
                 int offset,
                 int length,
                 Type type)
Visits an instruction which has no inline arguments (implicit or explicit).

Parameters:
opcode - the opcode
offset - offset to the instruction
length - length of the instruction, in bytes
type - non-null; type the instruction operates on

visitLocal

void visitLocal(int opcode,
                int offset,
                int length,
                int idx,
                Type type,
                int value)
Visits an instruction which has a local variable index argument.

Parameters:
opcode - the opcode
offset - offset to the instruction
length - length of the instruction, in bytes
idx - the local variable index
type - non-null; the type of the accessed value
value - additional literal integer argument, if salient (i.e., for iinc)

visitConstant

void visitConstant(int opcode,
                   int offset,
                   int length,
                   Constant cst,
                   int value)
Visits an instruction which has a (possibly synthetic) constant argument, and possibly also an additional literal integer argument. In the case of multianewarray, the argument is the count of dimensions. In the case of invokeinterface, the argument is the parameter count or'ed with the should-be-zero value left-shifted by 8. In the case of entries of type int, the value field always holds the raw value (for convenience of clients).

Note: In order to avoid giving it a barely-useful visitor all its own, newarray also uses this form, passing value as the array type code and cst as a CstType instance corresponding to the array type.

Parameters:
opcode - the opcode
offset - offset to the instruction
length - length of the instruction, in bytes
cst - non-null; the constant
value - additional literal integer argument, if salient (ignore if not)

visitBranch

void visitBranch(int opcode,
                 int offset,
                 int length,
                 int target)
Visits an instruction which has a branch target argument.

Parameters:
opcode - the opcode
offset - offset to the instruction
length - length of the instruction, in bytes
target - the absolute (not relative) branch target

visitSwitch

void visitSwitch(int opcode,
                 int offset,
                 int length,
                 SwitchList cases,
                 int padding)
Visits a switch instruction.

Parameters:
opcode - the opcode
offset - offset to the instruction
length - length of the instruction, in bytes
cases - non-null; list of (value, target) pairs, plus the default target
padding - the bytes found in the padding area (if any), packed

visitNewarray

void visitNewarray(int offset,
                   int length,
                   CstType type,
                   ArrayList<Constant> initVals)
Visits a newarray instruction.

Parameters:
offset - offset to the instruction
length - length of the instruction, in bytes
type - non-null; the type of the array
initVals - non-null; list of bytecode offsets for init values

setPreviousOffset

void setPreviousOffset(int offset)
Set previous bytecode offset

Parameters:
offset - offset of the previous fully parsed bytecode

getPreviousOffset

int getPreviousOffset()
Get previous bytecode offset

Returns:
return the recored offset of the previous bytecode


Copyright © 2015. All rights reserved.