public class ConstantPool extends java.lang.Object implements java.lang.Iterable<ConstantPool.ConstCell>
Modifier and Type | Class and Description |
---|---|
static class |
ConstantPool.ConstCell
ConstantCell
ConstantCell is a type of data that can be in a constant pool.
|
static class |
ConstantPool.ConstValue
ConstValue
A (typed) tagged value in the constant pool.
|
static class |
ConstantPool.ConstValue_Cell
ConstValue
A (typed) tagged value in the constant pool.
|
static class |
ConstantPool.ConstValue_CondyPair
ConstValue
A (typed) tagged value in the constant pool.
|
static class |
ConstantPool.ConstValue_IndyOrCondyPair |
static class |
ConstantPool.ConstValue_IndyPair
ConstValue
A (typed) tagged value in the constant pool.
|
static class |
ConstantPool.ConstValue_Integer
ConstValue
A (typed) tagged value in the constant pool.
|
static class |
ConstantPool.ConstValue_Long
ConstValue
A (typed) tagged value in the constant pool.
|
static class |
ConstantPool.ConstValue_Pair
ConstValue
A (typed) tagged value in the constant pool.
|
static class |
ConstantPool.ConstValue_String
ConstValue
A (typed) tagged value in the constant pool.
|
static class |
ConstantPool.ConstValue_Zero
ConstValue
A (typed) tagged value in the constant pool.
|
static class |
ConstantPool.CPTagVisitor<R>
CPVisitor
CPVisitor base class defining a visitor for decoding constants.
|
static class |
ConstantPool.CPVisitor<R>
CPVisitor
CPVisitor base class defining a visitor for decoding constants.
|
static class |
ConstantPool.ReferenceRank |
Modifier and Type | Field and Description |
---|---|
private ConstantPool.ConstCell |
constant_0 |
private ConstantPool.ConstValue |
ConstValue0 |
(package private) java.util.Hashtable<ConstantPool.ConstValue,ConstantPool.ConstCell> |
cpoolHashByValue |
private static boolean |
debugCP |
Environment |
env |
private ConstantPool.CPVisitor<java.lang.Void> |
fixCPVstr |
private ConstantPool.ConstCell |
nullConst |
private java.util.ArrayList<ConstantPool.ConstCell> |
pool |
Constructor and Description |
---|
ConstantPool(Environment env)
main constructor
|
private java.util.ArrayList<ConstantPool.ConstCell> pool
private final ConstantPool.ConstValue ConstValue0
private final ConstantPool.ConstCell nullConst
private final ConstantPool.ConstCell constant_0
java.util.Hashtable<ConstantPool.ConstValue,ConstantPool.ConstCell> cpoolHashByValue
public Environment env
private static boolean debugCP
private ConstantPool.CPVisitor<java.lang.Void> fixCPVstr
public ConstantPool(Environment env)
env
- The error reporting environmentpublic void debugStr(java.lang.String s)
public java.util.Iterator<ConstantPool.ConstCell> iterator()
iterator
in interface java.lang.Iterable<ConstantPool.ConstCell>
public void fixRefsInPool()
protected void CheckGlobals()
private void checkAndFixCPRef(int i, ConstantPool.ConstCell item)
public void printPool()
private ConstantPool.ConstCell cpool_get(int cpx)
private void cpool_set(int cpx, ConstantPool.ConstCell cell, int sz)
protected ConstantPool.ConstCell uncheckedGetCell(int cpx)
public ConstantPool.ConstCell getCell(int cpx)
public void setCell(int cpx, ConstantPool.ConstCell cell)
protected void NumberizePool()
public ConstantPool.ConstCell FindCell(ConstantPool.ConstValue ref)
public ConstantPool.ConstCell FindCell(Tables.ConstType tag, java.lang.String value)
public ConstantPool.ConstCell FindCell(Tables.ConstType tag, java.lang.Integer value)
public ConstantPool.ConstCell FindCell(Tables.ConstType tag, java.lang.Long value)
public ConstantPool.ConstCell FindCell(Tables.ConstType tag, ConstantPool.ConstCell value)
public ConstantPool.ConstCell FindCell(Tables.ConstType tag, ConstantPool.ConstCell left, ConstantPool.ConstCell right)
public ConstantPool.ConstCell FindCellAsciz(java.lang.String str)
public ConstantPool.ConstCell FindCellClassByName(java.lang.String name)
public ConstantPool.ConstCell FindCellModuleByName(java.lang.String name)
public ConstantPool.ConstCell FindCellPackageByName(java.lang.String name)
public void write(CheckedDataOutputStream out) throws java.io.IOException
java.io.IOException