sigs.addElement(VM_ClassLoader.findOrCreateType(findOrCreateAtom(val, off, i - off)));
sigs.addElement(VM_ClassLoader.findOrCreateType(findOrCreateAtom(val, off, i - off), classloader));
  final VM_Type[] parseForParameterTypes() {    if (VM.VerifyAssertions) VM.assert(val[0] == '(');    VM_TypeVector sigs = new VM_TypeVector();    for (int i = 1;;)      switch (val[i++])	{	case VoidTypeCode:    sigs.addElement(VM_Type.VoidType);     continue;	case BooleanTypeCode: sigs.addElement(VM_Type.BooleanType);  continue;	case ByteTypeCode:    sigs.addElement(VM_Type.ByteType);     continue;	case ShortTypeCode:   sigs.addElement(VM_Type.ShortType);    continue;	case IntTypeCode:     sigs.addElement(VM_Type.IntType);      continue;	case LongTypeCode:    sigs.addElement(VM_Type.LongType);     continue;	case FloatTypeCode:   sigs.addElement(VM_Type.FloatType);    continue;	case DoubleTypeCode:  sigs.addElement(VM_Type.DoubleType);   continue;	case CharTypeCode:    sigs.addElement(VM_Type.CharType);     continue;	case ClassTypeCode: {	  int off = i - 1;	  while (val[i++] != ';');	  sigs.addElement(VM_ClassLoader.findOrCreateType(findOrCreateAtom(val, off, i - off)));	  continue;	}	case ArrayTypeCode: {	  int off = i - 1;	  while (val[i] == ArrayTypeCode) ++i;	  if (val[i++] == ClassTypeCode) while (val[i++] != ';');	  sigs.addElement(VM_ClassLoader.findOrCreateType(findOrCreateAtom(val, off, i - off)));	  continue;	}	case (byte)')': // end of parameter list	  return sigs.finish();            	default: if (VM.VerifyAssertions) VM.assert(NOT_REACHED);	}  }  /**   * Parse "this" field, parameter, or return descriptor to obtain its    * type code.   * this: descriptor - something like "Ljava/lang/String;" or "[I" or "I"   * @return type code  - something like ObjectTypeCode, ArrayTypeCode, or    * IntTypeCode   *    * The type code will be one of the following constants:   *    * <pre>   *               constant         value   *           ----------------     -----   *            ClassTypeCode        'L'   *            ArrayTypeCode        '['   *            VoidTypeCode         'V'   *            BooleanTypeCode      'Z'   *            ByteTypeCode         'B'   *            ShortTypeCode        'S'   *            IntTypeCode          'I'   *            LongTypeCode         'J'   *            FloatTypeCode        'F'   *            DoubleTypeCode       'D'   *            CharTypeCode         'C'   * </pre>   */  final byte parseForTypeCode() {    return val[0];  }