if (verboseJNI) VM.sysWrite("JNI called: NewString  \n");
if (traceJNI) VM.sysWrite("JNI called: NewString  \n");
  private static int NewString(int envJREF, int uchars, int len) {    if (verboseJNI) VM.sysWrite("JNI called: NewString  \n");    VM_JNIEnvironment env;    try {      env = VM_Thread.getCurrentThread().getJNIEnv();      char[] contents = new char[len];      VM_Memory.memcopy(VM_Magic.objectAsAddress(contents), VM_Address.fromInt(uchars), len*2);      String s = new String(contents);      if (s!=null) {        return env.pushJNIRef(s);      } else {        env = VM_Thread.getCurrentThread().getJNIEnv();        env.recordException(new OutOfMemoryError());        return 0;      }    } catch (Throwable unexpected) {      env = VM_Thread.getCurrentThread().getJNIEnv();      env.recordException(unexpected);      return 0;    }  }