Object[] tib = arrayType.getTypeInformationBlock(); int allocator = MM_Interface.pickAllocator(arrayType); Object newArray[] = (Object []) VM_Runtime.resolvedNewArray(length, arrayType.getInstanceSize(length), tib, allocator);
Object newArray[] = (Object []) VM_Runtime.resolvedNewArray(length, arrayType);
  private static int NewObjectArray(int envJREF, int length, int classJREF, int initElementJREF) {    if (traceJNI) VM.sysWrite("JNI called: NewObjectArray  \n");    VM_JNIEnvironment env = VM_Thread.getCurrentThread().getJNIEnv();    try {      Object initElement = env.getJNIRef(initElementJREF);      Class cls = (Class) env.getJNIRef(classJREF);      if(cls == null)	throw new NullPointerException();      if(length < 0)	throw new NegativeArraySizeException();      VM_Array arrayType = java.lang.JikesRVMSupport.getTypeForClass(cls).getArrayTypeForElementType();      if (!arrayType.isInitialized()) {	arrayType.resolve();	arrayType.instantiate();	arrayType.initialize();      }      Object[] tib = arrayType.getTypeInformationBlock();      int allocator = MM_Interface.pickAllocator(arrayType);      Object newArray[] = (Object []) VM_Runtime.resolvedNewArray(length, arrayType.getInstanceSize(length), tib, allocator);      if (initElement != null) {	for (int i=0; i<length; i++) {	  newArray[i] = initElement;	}      }      return env.pushJNIRef(newArray);      } catch (Throwable unexpected) {      if (traceJNI) unexpected.printStackTrace(System.err);      env.recordException(unexpected);      return 0;    }  }