code: void putObject(int offset, NativeObject ob) {
          switch (addressSize()) {
              case 8:
                  putLong(offset, ob.address);
                  break;
              case 4:
                  putInt(offset, (int)(ob.address & 0x00000000FFFFFFFF));
                  break;
              default:
                  throw new InternalError("Address size not supported");
          }
      }
docs: Writes the base address of the given native object at the given offset
  of this native object.
  
  @param  offset
  The offset at which the address is to be written.  Note that the
  size of an address is implementation-dependent.
  
  @param  ob
  The native object whose address is to be written