Class IMethodRefForm
java.lang.Object
org.apache.commons.compress.harmony.unpack200.bytecode.forms.ByteCodeForm
org.apache.commons.compress.harmony.unpack200.bytecode.forms.ReferenceForm
org.apache.commons.compress.harmony.unpack200.bytecode.forms.IMethodRefForm
This class implements the byte code form for those bytecodes which have IMethod references (and only IMethod references).
-
Field Summary
Fields inherited from class ByteCodeForm
byteCodeArray, byteCodesByName, WIDENED -
Constructor Summary
ConstructorsConstructorDescriptionIMethodRefForm(int opcode, String name, int[] rewrite) Constructs a new instance with the specified opcode, name, operandType and rewrite. -
Method Summary
Modifier and TypeMethodDescriptionprotected intgetOffset(OperandManager operandManager) protected intvoidsetByteCodeOperands(ByteCode byteCode, OperandManager operandManager, int codeLength) Sets the rewrite of the byteCode.Methods inherited from class ReferenceForm
setNestedEntriesMethods inherited from class ByteCodeForm
calculateOperandPosition, firstOperandIndex, fixUpByteCodeTargets, get, getName, getOpcode, getRewrite, getRewriteCopy, hasMultipleByteCodes, hasNoOperand, nestedMustStartClassPool, operandLength, toString
-
Constructor Details
-
IMethodRefForm
Constructs a new instance with the specified opcode, name, operandType and rewrite.- Parameters:
opcode- index corresponding to the opcode's value.name- String printable name of the opcode.rewrite- Operand positions (which will later be rewritten in ByteCodes) are indicated by -1.
-
-
Method Details
-
getOffset
- Specified by:
getOffsetin classReferenceForm
-
getPoolID
- Specified by:
getPoolIDin classReferenceForm
-
setByteCodeOperands
public void setByteCodeOperands(ByteCode byteCode, OperandManager operandManager, int codeLength) throws Pack200Exception Description copied from class:ByteCodeFormSets the rewrite of the byteCode.- Overrides:
setByteCodeOperandsin classReferenceForm- Parameters:
byteCode- ByteCode to be updated (!)operandManager- OperandTable from which to draw infocodeLength- Length of bytes (excluding this bytecode) from the beginning of the method. Used in calculating padding for some variable-length bytecodes (such as lookupswitch, tableswitch).- Throws:
Pack200Exception- if a type is not supported or an index not in the range [0,Integer.MAX_VALUE].
-