int allocator = MM_Interface.pickAllocator(ary); Object temp[] = (Object[]) VM_Runtime.resolvedNewArray(len, ary.getInstanceSize(len), ary.getTypeInformationBlock(), allocator);
Object temp[] = (Object[])VM_Runtime.resolvedNewArray(len, ary);
  private static void slowArrayCopy(Object[] src, int srcIdx, Object[] dst, 				    int dstIdx, int len) {    // must perform copy in correct order    if ((src != dst) || srcIdx > dstIdx) {      // non-overlapping case: straightforward      while (len-- != 0)	dst[dstIdx++] = src[srcIdx++];    } else {      // the arrays overlap: must use temp array      VM_Array ary = VM_Magic.getObjectType(src).asArray();      int allocator = MM_Interface.pickAllocator(ary);      Object temp[] = (Object[])	VM_Runtime.resolvedNewArray(len, ary.getInstanceSize(len), 				    ary.getTypeInformationBlock(), allocator);      int cnt = len;      int tempIdx = 0;      while (cnt-- != 0)	temp[tempIdx++] = src[srcIdx++];      tempIdx = 0;      while (len-- != 0)	dst[dstIdx++] = temp[tempIdx++];    }  }