public void copy(final int offset,final NativeMemoryChunk other,final int otherOffset,final int count){
  Preconditions.checkNotNull(other);
  if (other.mNativePtr == mNativePtr) {
    Log.w(TAG,"Copying from NativeMemoryChunk " + Integer.toHexString(System.identityHashCode(this)) + " to NativeMemoryChunk "+ Integer.toHexString(System.identityHashCode(other))+ " which share the same address "+ Long.toHexString(mNativePtr));
    Preconditions.checkArgument(false);
  }
  if (other.mNativePtr < mNativePtr) {
synchronized (other) {
synchronized (this) {
        doCopy(offset,other,otherOffset,count);
      }
    }
    return;
  }
synchronized (this) {
synchronized (other) {
      doCopy(offset,other,otherOffset,count);
    }
  }
}

public void copy ( final int offset , final NativeMemoryChunk other , final int otherOffset , final int count ) { Preconditions . checkNotNull ( other ) ; if ( other . mNativePtr == mNativePtr ) { Log . w ( TAG , "Copying from NativeMemoryChunk " + Integer . toHexString ( System . identityHashCode ( this ) ) + " to NativeMemoryChunk " + Integer . toHexString ( System . identityHashCode ( other ) ) + " which share the same address " + Long . toHexString ( mNativePtr ) ) ; Preconditions . checkArgument ( false ) ; } if ( other . mNativePtr < mNativePtr ) { synchronized ( other ) { synchronized ( this ) { doCopy ( offset , other , otherOffset , count ) ; } } return ; } synchronized ( this ) { synchronized ( other ) { doCopy ( offset , other , otherOffset , count ) ; } } }
copy bytes from native memory wrapped by this nativememorychunk instance to native memory wrapped by other nativememorychunk
