int temp = VM_Magic.getMemoryWord(isCopyAddress);
int temp = VM_Magic.getMemoryInt(isCopyAddress);
  private static VM_Address GetStringChars(int envJREF, int objJREF, VM_Address isCopyAddress) {    if (traceJNI) VM.sysWrite("JNI called: GetStringChars  \n");    //    VM.sysWrite("GetStringChars\n");    VM_JNIEnvironment env;    try {      env = VM_Thread.getCurrentThread().getJNIEnv();      // retrieve the real String object from the side table      String str =  (String) env.getJNIRef(objJREF);      int len = str.length();      char[] contents = str.toCharArray();      // alloc non moving buffer in C heap for a copy of string contents      VM_Address copyBuffer = VM_Address.fromInt(VM.sysCall1(VM_BootRecord.the_boot_record.sysMallocIP,                                                             len*2));      if(copyBuffer.isZero()) {        env.recordException(new OutOfMemoryError());        return VM_Address.zero();      }      VM_Memory.memcopy( copyBuffer, VM_Magic.objectAsAddress(contents), len*2 );      // set callers isCopy boolean to true, if it's a valid address      if (!isCopyAddress.isZero()) {        int temp = VM_Magic.getMemoryWord(isCopyAddress);        if (LittleEndian) {          VM_Magic.setMemoryWord(isCopyAddress, ((temp & 0xffffff00) | 0x00000001));        } else {          VM_Magic.setMemoryWord(isCopyAddress, ((temp & 0x00ffffff) | 0x01000000));        }      }      return copyBuffer;    } catch (Throwable unexpected) {      env = VM_Thread.getCurrentThread().getJNIEnv();      env.recordException(unexpected);      return VM_Address.zero();    }  }