From 8cb556a9c1710beb7919d2f66dcf784e605263d7 Mon Sep 17 00:00:00 2001 From: leventov Date: Mon, 5 Oct 2015 10:57:42 +0300 Subject: [PATCH] Change allocatedExtraTierBulks counter type from long to int --- .../hash/VanillaGlobalMutableState.java | 6 +-- .../hash/impl/VanillaChronicleHash.java | 54 ++++++++++--------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/main/java/net/openhft/chronicle/hash/VanillaGlobalMutableState.java b/src/main/java/net/openhft/chronicle/hash/VanillaGlobalMutableState.java index b85990dff..0434b24ff 100644 --- a/src/main/java/net/openhft/chronicle/hash/VanillaGlobalMutableState.java +++ b/src/main/java/net/openhft/chronicle/hash/VanillaGlobalMutableState.java @@ -25,12 +25,10 @@ import net.openhft.lang.model.Byteable; */ public interface VanillaGlobalMutableState extends Byteable { - long getAllocatedExtraTierBulks(); - - void setAllocatedExtraTierBulks(long allocatedExtraTierBulks); + int getAllocatedExtraTierBulks(); + void setAllocatedExtraTierBulks(int allocatedExtraTierBulks); long getFirstFreeTierIndex(); - void setFirstFreeTierIndex(long firstFreeTierIndex); long getExtraTiersInUse(); diff --git a/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java b/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java index ae44dc1e4..b7cb7fb57 100644 --- a/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java +++ b/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java @@ -443,7 +443,7 @@ public abstract class VanillaChronicleHash 0) { @@ -629,7 +631,7 @@ public abstract class VanillaChronicleHash> log2NumberOfTiersInBulk; + long tierIndexMinusOne = tierIndex - 1; + if (tierIndexMinusOne < actualSegments) + return msBytesSegmentOffset(tierIndexMinusOne); + long extraTierIndex = tierIndexMinusOne - actualSegments; + int bulkIndex = (int) (extraTierIndex >> log2NumberOfTiersInBulk); if (bulkIndex >= tierBulkOffsets.size()) mapTiers(bulkIndex); - return tierBulkOffsets.get((int) bulkIndex).offset + tierBulkInnerOffsetToTiers + + return tierBulkOffsets.get(bulkIndex).offset + tierBulkInnerOffsetToTiers + (extraTierIndex & (numberOfTiersInBulk - 1)) * segmentSize; } - private TierBulkData tierBulkData(long tierIndex) { - long extraTierIndex = tierIndex - actualSegments; - long bulkIndex = extraTierIndex >> log2NumberOfTiersInBulk; + private TierBulkData tierBulkData(long tierIndexMinusOne) { + long extraTierIndex = tierIndexMinusOne - actualSegments; + int bulkIndex = (int) (extraTierIndex >> log2NumberOfTiersInBulk); if (bulkIndex >= tierBulkOffsets.size()) mapTiers(bulkIndex); - return tierBulkOffsets.get((int) bulkIndex); + return tierBulkOffsets.get(bulkIndex); } private long extraTierIndexToBaseAddr(long tierIndexMinusOne) { long extraTierIndex = tierIndexMinusOne - actualSegments; - long bulkIndex = extraTierIndex >> log2NumberOfTiersInBulk; + int bulkIndex = (int) (extraTierIndex >> log2NumberOfTiersInBulk); if (bulkIndex >= tierBulkOffsets.size()) mapTiers(bulkIndex); TierBulkData tierBulkData = tierBulkOffsets.get((int) bulkIndex); @@ -684,7 +686,7 @@ public abstract class VanillaChronicleHash