@NotNull @Override @ForceInline public NativeBytesStore<Underlying> write( long writeOffset, @NotNull RandomDataInput bytes, long readOffset, long length) throws BufferOverflowException, BufferUnderflowException { if (bytes.isDirectMemory()) { memory.copyMemory(bytes.addressForRead(readOffset), addressForWrite(writeOffset), length); } else { write0(writeOffset, bytes, readOffset, length); } return this; }
public long rawCopy(@NotNull RandomDataInput bytes, long offset, long length) throws BufferOverflowException, BufferUnderflowException { long len = Math.min(writeRemaining(), Math.min(bytes.capacity() - offset, length)); if (len > 0) { writeCheckOffset(writePosition(), len); OS.memory().copyMemory(bytes.addressForRead(offset), addressForWrite(writePosition()), len); writeSkip(len); } return len; }
protected void optimisedWrite(@NotNull RandomDataInput bytes, long offset, long length) { if (length <= safeCopySize() && isDirectMemory() && bytes.isDirectMemory()) { long len = Math.min(writeRemaining(), Math.min(bytes.capacity() - offset, length)); if (len > 0) { long address = bytes.addressForRead(offset); long address2 = addressForWrite(writePosition()); assert address != 0; assert address2 != 0; writeCheckOffset(writePosition(), len); OS.memory().copyMemory(address, address2, len); writeSkip(len); } } else { super.write(bytes, offset, length); } }
MapEntry<?, ?> entry2 = c.entry(); Data<?> key2 = ((MapEntry) c).key(); long keyAddress = key.bytes().addressForRead(key.offset()); long key2Address = key2.bytes().addressForRead(key2.offset()); if (key2Address != keyAddress) { report(corruptionListener, corruption, s.segmentIndex, () ->
MapEntry<?, ?> entry2 = c.entry(); Data<?> key2 = ((MapEntry)(c)).key(); long keyAddress = key.bytes().addressForRead(key.offset()); long key2Address = key2.bytes().addressForRead(key2.offset()); if (key2Address != keyAddress) { ChronicleHashCorruptionImpl.report(corruptionListener, corruption, this.segmentIndex(), () -> ChronicleHashCorruptionImpl.format(("entries with duplicate key {} in segment {}: " + "with values {} and {}, removing the latter"), key, c.segmentIndex(), (entry2 != null ? ((MapEntry)(c)).value() : "<deleted>"), (!(this.entryDeleted()) ? this.value() : "<deleted>")));
MapEntry<?, ?> entry2 = c.entry(); Data<?> key2 = ((MapEntry)(c)).key(); long keyAddress = key.bytes().addressForRead(key.offset()); long key2Address = key2.bytes().addressForRead(key2.offset()); if (key2Address != keyAddress) { ChronicleHashCorruptionImpl.report(corruptionListener, corruption, this.segmentIndex(), () -> ChronicleHashCorruptionImpl.format(("entries with duplicate key {} in segment {}: " + "with values {} and {}, removing the latter"), key, c.segmentIndex(), (entry2 != null ? ((MapEntry)(c)).value() : "<deleted>"), (!(this.entryDeleted()) ? this.value() : "<deleted>")));