public class CodeData extends Indenter
Modifier and Type | Class and Description |
---|---|
(package private) class |
CodeData.LineNumData |
static class |
CodeData.LocVarData |
Modifier and Type | Field and Description |
---|---|
protected java.util.ArrayList<AttrData> |
attrs
The remaining attributes of this class
|
protected ClassData |
cls |
protected byte[] |
code
Raw byte array for the byte codes
|
private java.util.HashMap<java.lang.Integer,iAtt> |
iattrs
(parsed) reversed bytecode index hash, associates labels with ByteCode indexes
|
private java.util.ArrayList<TypeAnnotationData> |
invisibleTypeAnnotations
The invisible type annotations for this method
|
private java.util.ArrayList<CodeData.LineNumData> |
lin_num_tb
(parsed) Line Number table, describes source lines associated with ByteCode indexes
|
private java.util.ArrayList<CodeData.LocVarData> |
loc_var_tb
(parsed) Local Variable table, describes variable scopes associated with ByteCode
indexes
|
protected int |
max_locals
Limit for the number of local vars
|
protected int |
max_stack
Limit for the stack size
|
protected MethodData |
meth |
private java.io.PrintWriter |
out |
private java.util.ArrayList<StackMapData> |
stack_map
(parsed) stack map table, describes compiler hints for stack rep, associated with
ByteCode indexes
|
private java.util.ArrayList<TrapData> |
trap_table
(parsed) Trap table, describes exceptions caught
|
private java.util.ArrayList<TypeAnnotationData> |
visibleTypeAnnotations
The visible type annotations for this method
|
Constructor and Description |
---|
CodeData(MethodData meth) |
Modifier and Type | Method and Description |
---|---|
private static int |
align(int n) |
private int |
checkForLabelRef(int pc) |
protected iAtt |
get_iAtt(int pc) |
private int |
getbyte(int pc) |
private int |
getInt(int pc) |
private int |
getShort(int pc) |
private int |
getUbyte(int pc) |
private int |
getUShort(int pc) |
private void |
loadLabelTable() |
private void |
loadLineNumTable() |
private void |
loadLocVarTable() |
private void |
loadStackMap() |
private void |
loadTrapTable() |
void |
print()
print
|
private void |
PrintCommentedConstant(int cpx) |
private void |
PrintConstant(int cpx) |
private int |
printInstr(int pc) |
void |
read(java.io.DataInputStream in,
int codeattrlen)
read
|
private void |
readLineNumTable(java.io.DataInputStream in) |
private void |
readLocVarTable(java.io.DataInputStream in) |
private void |
readStackMap(java.io.DataInputStream in) |
private void |
readStackMapTable(java.io.DataInputStream in) |
private void |
readTrapTable(java.io.DataInputStream in) |
private void |
readTypeAnnotations(java.io.DataInputStream in,
boolean isInvisible) |
decreaseIndent, getIndentString, increaseIndent, indent, setIndent
protected byte[] code
protected int max_stack
protected int max_locals
protected java.util.ArrayList<AttrData> attrs
protected ClassData cls
protected MethodData meth
private java.util.ArrayList<TrapData> trap_table
private java.util.ArrayList<CodeData.LineNumData> lin_num_tb
private java.util.ArrayList<CodeData.LocVarData> loc_var_tb
private java.util.ArrayList<StackMapData> stack_map
private java.util.ArrayList<TypeAnnotationData> visibleTypeAnnotations
private java.util.ArrayList<TypeAnnotationData> invisibleTypeAnnotations
private java.util.HashMap<java.lang.Integer,iAtt> iattrs
private java.io.PrintWriter out
public CodeData(MethodData meth)
private static int align(int n)
private int getbyte(int pc)
private int getUbyte(int pc)
private int getShort(int pc)
private int getUShort(int pc)
private int getInt(int pc)
protected iAtt get_iAtt(int pc)
private void readLineNumTable(java.io.DataInputStream in) throws java.io.IOException
java.io.IOException
private void readLocVarTable(java.io.DataInputStream in) throws java.io.IOException
java.io.IOException
private void readTrapTable(java.io.DataInputStream in) throws java.io.IOException
java.io.IOException
private void readStackMap(java.io.DataInputStream in) throws java.io.IOException
java.io.IOException
private void readStackMapTable(java.io.DataInputStream in) throws java.io.IOException
java.io.IOException
private void readTypeAnnotations(java.io.DataInputStream in, boolean isInvisible) throws java.io.IOException
java.io.IOException
public void read(java.io.DataInputStream in, int codeattrlen) throws java.io.IOException
read and resolve the code attribute data called from MethodData. precondition: NumFields has already been read from the stream.
java.io.IOException
private int checkForLabelRef(int pc)
private void loadLabelTable()
private void loadLineNumTable()
private void loadStackMap()
private void loadLocVarTable()
private void loadTrapTable()
private void PrintConstant(int cpx)
private void PrintCommentedConstant(int cpx)
private int printInstr(int pc)
public void print() throws java.io.IOException
prints the code data to the current output stream. called from MethodData.
java.io.IOException