Minor improvements related to VanillaChronicleMap.alignAddr()

This commit is contained in:
leventov
2015-12-12 18:00:10 +03:00
parent b34fcfce71
commit 229aeb5fdf
2 changed files with 4 additions and 8 deletions
@@ -233,15 +233,15 @@ public class VanillaChronicleMap<K, V, R>
return valueSize;
}
void alignReadPosition(Bytes entry) {
public void alignReadPosition(Bytes entry) {
long positionAddr = entry.address(entry.readPosition());
long skip = alignAddr(positionAddr, alignment) - positionAddr;
if (skip > 0)
entry.readSkip(skip);
}
public static long alignAddr(long addr, int alignment) {
return (addr + alignment - 1) & ~(alignment - 1);
public static long alignAddr(long addr, long alignment) {
return (addr + alignment - 1) & ~(alignment - 1L);
}
private ChainingInterface q() {
@@ -73,11 +73,7 @@ public abstract class MapEntryStages<K, V> extends HashEntryStages<K>
Bytes segmentBytes = s.segmentBytesForRead();
segmentBytes.readPosition(valueSizeOffset);
valueSize = mh.m().readValueSize(segmentBytes);
long currentPosition = segmentBytes.readPosition();
long currentAddr = segmentBytes.address(currentPosition);
long skip = alignAddr(currentAddr, mh.m().alignment) - currentAddr;
if (skip > 0)
segmentBytes.readSkip(skip);
mh.m().alignReadPosition(segmentBytes);
valueOffset = segmentBytes.readPosition();
}