DirectByteBufferImpl result = new DirectByteBufferImpl (this, address, capacity (), limit (), pos, readOnly);
DirectByteBufferImpl result; if (readOnly) result = new DirectByteBufferImpl.ReadOnly(this, address, capacity(), limit(), pos); else result = new DirectByteBufferImpl.ReadWrite(this, address, capacity(), limit(), pos);
  private ByteBuffer duplicate (boolean readOnly)  {    int pos = position();    reset();    int mark = position();    position(pos);    DirectByteBufferImpl result      = new DirectByteBufferImpl (this, address, capacity (), limit (),				  pos, readOnly);    if (mark != pos)      {	result.position(mark);	result.mark();	result.position(pos);      }    return result;  }