internal override void Resolve(ClassFile classFile) { ConstantPoolItemNameAndType name_and_type = (ConstantPoolItemNameAndType)classFile.GetConstantPoolItem(name_and_type_index); clazz = (ConstantPoolItemClass)classFile.GetConstantPoolItem(class_index); // if the constant pool items referred to were strings, GetConstantPoolItem returns null if(name_and_type == null || clazz == null) { throw new ClassFormatError("Bad index in constant pool"); } name = String.Intern(classFile.GetConstantPoolUtf8String(name_and_type.name_index)); descriptor = classFile.GetConstantPoolUtf8String(name_and_type.descriptor_index); Validate(name, descriptor, classFile.MajorVersion); descriptor = String.Intern(descriptor.Replace('/', '.')); }