Adds an Frame#ITEM_UNINITIALIZED type in the type table of this symbol table. Does nothing if the type table already contains a similar type. @param value an internal class name. @param bytecodeOffset the bytecode offset of the NEW instruction that created this {@link Frame#ITEM_UNINITI
(final String value, final int bytecodeOffset)
| 1167 | * @return the index of a new or already existing type Symbol with the given value. |
| 1168 | */ |
| 1169 | int addUninitializedType(final String value, final int bytecodeOffset) { |
| 1170 | int hashCode = hash(Symbol.UNINITIALIZED_TYPE_TAG, value, bytecodeOffset); |
| 1171 | Entry entry = get(hashCode); |
| 1172 | while (entry != null) { |
| 1173 | if (entry.tag == Symbol.UNINITIALIZED_TYPE_TAG |
| 1174 | && entry.hashCode == hashCode |
| 1175 | && entry.data == bytecodeOffset |
| 1176 | && entry.value.equals(value)) { |
| 1177 | return entry.index; |
| 1178 | } |
| 1179 | entry = entry.next; |
| 1180 | } |
| 1181 | return addType( |
| 1182 | new Entry(typeCount, Symbol.UNINITIALIZED_TYPE_TAG, value, bytecodeOffset, hashCode)); |
| 1183 | } |
| 1184 | |
| 1185 | /** |
| 1186 | * Adds a merged type in the type table of this symbol table. Does nothing if the type table |