diff --git a/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java b/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java index 0377b63d3..ee7273afc 100755 --- a/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java +++ b/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java @@ -233,15 +233,15 @@ public class VanillaChronicleMap 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() { diff --git a/src/main/java/net/openhft/chronicle/map/impl/stage/entry/MapEntryStages.java b/src/main/java/net/openhft/chronicle/map/impl/stage/entry/MapEntryStages.java index 6ec4c46b4..9a40198c7 100644 --- a/src/main/java/net/openhft/chronicle/map/impl/stage/entry/MapEntryStages.java +++ b/src/main/java/net/openhft/chronicle/map/impl/stage/entry/MapEntryStages.java @@ -73,11 +73,7 @@ public abstract class MapEntryStages extends HashEntryStages 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(); }