result = (Class[]) publicClasses.toArray(result);
result = publicClasses.toArray(result);
  public Class[] getClasses()     throws SecurityException   {    checkMemberAccess(Member.PUBLIC);    if (!type.isClassType()) return new Class[0];        ArrayList publicClasses = new ArrayList();    for (Class c = this; c != null; c = c.getSuperclass()) {      c.checkMemberAccess(Member.PUBLIC);      VM_TypeReference[] declaredClasses         = c.type.asClass().getDeclaredClasses();      if (declaredClasses != null) {        for (int i=0; i<declaredClasses.length; i++) {          if (declaredClasses[i] != null) {            VM_Class dc = declaredClasses[i].resolve().asClass();            if (dc.isPublic()) {              publicClasses.add(dc.getClassForType());            }          }        }      }    }    Class result[] = new Class[publicClasses.size()];    result = (Class[]) publicClasses.toArray(result);    return result;  }