ProGuard

proguard.classfile.instruction
Class CpInstruction

java.lang.Object
  extended byproguard.classfile.instruction.Instruction
      extended byproguard.classfile.instruction.CpInstruction
All Implemented Interfaces:
CpInfoVisitor

public class CpInstruction
extends Instruction
implements CpInfoVisitor

This Instruction represents an instruction that refers to an entry in the constant pool.


Field Summary
 int constant
           
 int cpIndex
           
 
Fields inherited from class proguard.classfile.instruction.Instruction
opcode
 
Constructor Summary
CpInstruction()
          Creates an uninitialized CpInstruction.
CpInstruction(byte opcode, int cpIndex)
          Creates a new CpInstruction with the given opcode and constant pool index.
CpInstruction(byte opcode, int cpIndex, int constant)
          Creates a new CpInstruction with the given opcode, constant pool index, and constant.
 
Method Summary
 void accept(ClassFile classFile, MethodInfo methodInfo, CodeAttrInfo codeAttrInfo, int offset, InstructionVisitor instructionVisitor)
          Accepts the given visitor.
 CpInstruction copy(CpInstruction cpInstruction)
          Copies the given instruction into this instruction.
 int length(int offset)
          Returns the length in bytes of the instruction.
protected  void readInfo(byte[] code, int offset)
          Reads the data following the instruction opcode.
 Instruction shrink()
          Shrinks this instruction to its shortest possible form.
 int stackPopCount(ClassFile classFile)
          Returns the number of entries popped from the stack during the execution of the instruction.
 int stackPushCount(ClassFile classFile)
          Returns the number of entries pushed onto the stack during the execution of the instruction.
 String toString()
           
 String toString(int offset)
          Returns a description of the instruction, at the given offset.
 void visitClassCpInfo(ClassFile classFile, ClassCpInfo classCpInfo)
           
 void visitDoubleCpInfo(ClassFile classFile, DoubleCpInfo doubleCpInfo)
           
 void visitFieldrefCpInfo(ClassFile classFile, FieldrefCpInfo fieldrefCpInfo)
           
 void visitFloatCpInfo(ClassFile classFile, FloatCpInfo floatCpInfo)
           
 void visitIntegerCpInfo(ClassFile classFile, IntegerCpInfo integerCpInfo)
           
 void visitInterfaceMethodrefCpInfo(ClassFile classFile, InterfaceMethodrefCpInfo interfaceMethodrefCpInfo)
           
 void visitLongCpInfo(ClassFile classFile, LongCpInfo longCpInfo)
           
 void visitMethodrefCpInfo(ClassFile classFile, MethodrefCpInfo methodrefCpInfo)
           
 void visitNameAndTypeCpInfo(ClassFile classFile, NameAndTypeCpInfo nameAndTypeCpInfo)
           
 void visitStringCpInfo(ClassFile classFile, StringCpInfo stringCpInfo)
           
 void visitUtf8CpInfo(ClassFile classFile, Utf8CpInfo utf8CpInfo)
           
protected  void writeInfo(byte[] code, int offset)
          Writes data following the instruction opcode.
 
Methods inherited from class proguard.classfile.instruction.Instruction
getName, isCategory2, isWide, readByte, readInt, readShort, readSignedByte, readSignedShort, readSignedValue, readValue, write, writeByte, writeInt, writeShort, writeValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cpIndex

public int cpIndex

constant

public int constant
Constructor Detail

CpInstruction

public CpInstruction()
Creates an uninitialized CpInstruction.


CpInstruction

public CpInstruction(byte opcode,
                     int cpIndex)
Creates a new CpInstruction with the given opcode and constant pool index.


CpInstruction

public CpInstruction(byte opcode,
                     int cpIndex,
                     int constant)
Creates a new CpInstruction with the given opcode, constant pool index, and constant.

Method Detail

copy

public CpInstruction copy(CpInstruction cpInstruction)
Copies the given instruction into this instruction.

Parameters:
cpInstruction - the instruction to be copied.
Returns:
this instruction.

shrink

public Instruction shrink()
Description copied from class: Instruction
Shrinks this instruction to its shortest possible form.

Specified by:
shrink in class Instruction
Returns:
this instruction.

readInfo

protected void readInfo(byte[] code,
                        int offset)
Description copied from class: Instruction
Reads the data following the instruction opcode.

Specified by:
readInfo in class Instruction

writeInfo

protected void writeInfo(byte[] code,
                         int offset)
Description copied from class: Instruction
Writes data following the instruction opcode.

Specified by:
writeInfo in class Instruction

length

public int length(int offset)
Description copied from class: Instruction
Returns the length in bytes of the instruction.

Specified by:
length in class Instruction

accept

public void accept(ClassFile classFile,
                   MethodInfo methodInfo,
                   CodeAttrInfo codeAttrInfo,
                   int offset,
                   InstructionVisitor instructionVisitor)
Description copied from class: Instruction
Accepts the given visitor.

Specified by:
accept in class Instruction

toString

public String toString(int offset)
Description copied from class: Instruction
Returns a description of the instruction, at the given offset.

Specified by:
toString in class Instruction

stackPopCount

public int stackPopCount(ClassFile classFile)
Description copied from class: Instruction
Returns the number of entries popped from the stack during the execution of the instruction.

Overrides:
stackPopCount in class Instruction

stackPushCount

public int stackPushCount(ClassFile classFile)
Description copied from class: Instruction
Returns the number of entries pushed onto the stack during the execution of the instruction.

Overrides:
stackPushCount in class Instruction

visitIntegerCpInfo

public void visitIntegerCpInfo(ClassFile classFile,
                               IntegerCpInfo integerCpInfo)
Specified by:
visitIntegerCpInfo in interface CpInfoVisitor

visitLongCpInfo

public void visitLongCpInfo(ClassFile classFile,
                            LongCpInfo longCpInfo)
Specified by:
visitLongCpInfo in interface CpInfoVisitor

visitFloatCpInfo

public void visitFloatCpInfo(ClassFile classFile,
                             FloatCpInfo floatCpInfo)
Specified by:
visitFloatCpInfo in interface CpInfoVisitor

visitDoubleCpInfo

public void visitDoubleCpInfo(ClassFile classFile,
                              DoubleCpInfo doubleCpInfo)
Specified by:
visitDoubleCpInfo in interface CpInfoVisitor

visitStringCpInfo

public void visitStringCpInfo(ClassFile classFile,
                              StringCpInfo stringCpInfo)
Specified by:
visitStringCpInfo in interface CpInfoVisitor

visitUtf8CpInfo

public void visitUtf8CpInfo(ClassFile classFile,
                            Utf8CpInfo utf8CpInfo)
Specified by:
visitUtf8CpInfo in interface CpInfoVisitor

visitClassCpInfo

public void visitClassCpInfo(ClassFile classFile,
                             ClassCpInfo classCpInfo)
Specified by:
visitClassCpInfo in interface CpInfoVisitor

visitNameAndTypeCpInfo

public void visitNameAndTypeCpInfo(ClassFile classFile,
                                   NameAndTypeCpInfo nameAndTypeCpInfo)
Specified by:
visitNameAndTypeCpInfo in interface CpInfoVisitor

visitFieldrefCpInfo

public void visitFieldrefCpInfo(ClassFile classFile,
                                FieldrefCpInfo fieldrefCpInfo)
Specified by:
visitFieldrefCpInfo in interface CpInfoVisitor

visitInterfaceMethodrefCpInfo

public void visitInterfaceMethodrefCpInfo(ClassFile classFile,
                                          InterfaceMethodrefCpInfo interfaceMethodrefCpInfo)
Specified by:
visitInterfaceMethodrefCpInfo in interface CpInfoVisitor

visitMethodrefCpInfo

public void visitMethodrefCpInfo(ClassFile classFile,
                                 MethodrefCpInfo methodrefCpInfo)
Specified by:
visitMethodrefCpInfo in interface CpInfoVisitor

toString

public String toString()

ProGuard