public override DoubleBuffer Put(double[] src, int offset, int length) { if (((long)length << 3) > Bits.JNI_COPY_FROM_ARRAY_THRESHOLD) { CheckBounds(offset, length, src.Length); int pos = Position(); int lim = Limit(); assert(pos <= lim); int rem = (pos <= lim ? lim - pos : 0); if (length > rem) { throw new BufferOverflowException(); } if (Order() != ByteOrder.NativeOrder()) { Bits.copyFromLongArray(src, (long)offset << 3, Ix(pos), (long)length << 3); } else { Bits.CopyFromArray(src, ArrayBaseOffset, (long)offset << 3, Ix(pos), (long)length << 3); } Position(pos + length); } else { base.Put(src, offset, length); } return(this); }