}
return cpUTF8;
}
public CPNameAndType cpNameAndTypeValue(String descriptor) {
CPNameAndType cpNameAndType = (CPNameAndType) descriptorsToCPNameAndTypes
.get(descriptor);
if (cpNameAndType == null) {
Integer index = (Integer)mapDescriptor.get(descriptor);
if(index != null) {
return cpNameAndTypeValue(index.intValue());
}
int colon = descriptor.indexOf(':');
String nameString = descriptor.substring(0, colon);
String descriptorString = descriptor.substring(colon + 1);
CPUTF8 name = cpUTF8Value(nameString, true);
CPUTF8 descriptorU = cpUTF8Value(descriptorString, true);
cpNameAndType = new CPNameAndType(name, descriptorU, -1 + descrOffset);
descriptorsToCPNameAndTypes.put(descriptor, cpNameAndType);
}
return cpNameAndType;
}