From ec52287f15d6304b44976d77a94590df0a6a7498 Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Fri, 23 Aug 2019 15:06:13 +0200 Subject: Add workaround for use of deprecated AlignedEntryRefT. --- vespalib/src/vespa/vespalib/datastore/datastore.hpp | 5 ++--- vespalib/src/vespa/vespalib/datastore/entryref.h | 4 ++++ vespalib/src/vespa/vespalib/datastore/unique_store_saver.h | 4 ++-- vespalib/src/vespa/vespalib/datastore/unique_store_saver.hpp | 6 +++--- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/vespalib/src/vespa/vespalib/datastore/datastore.hpp b/vespalib/src/vespa/vespalib/datastore/datastore.hpp index 40a00c68774..0e4d1bbe652 100644 --- a/vespalib/src/vespa/vespalib/datastore/datastore.hpp +++ b/vespalib/src/vespa/vespalib/datastore/datastore.hpp @@ -14,7 +14,7 @@ namespace search::datastore { template DataStoreT::DataStoreT() : DataStoreBase(RefType::numBuffers(), - RefType::offsetSize() / RefType::align(1)) + RefType::unscaled_offset_size()) { } @@ -39,8 +39,7 @@ DataStoreT::freeElem(EntryRef ref, size_t numElems) } state.incDeadElems(numElems); state.cleanHold(getBuffer(intRef.bufferId()), - (intRef.offset() / RefType::align(1)) * - state.getArraySize(), numElems); + intRef.unscaled_offset() * state.getArraySize(), numElems); } template diff --git a/vespalib/src/vespa/vespalib/datastore/entryref.h b/vespalib/src/vespa/vespalib/datastore/entryref.h index 9b265abafd3..c65e788637f 100644 --- a/vespalib/src/vespa/vespalib/datastore/entryref.h +++ b/vespalib/src/vespa/vespalib/datastore/entryref.h @@ -40,6 +40,10 @@ public: static size_t align(size_t val) { return val; } static size_t pad(size_t val) { (void) val; return 0ul; } static constexpr bool isAlignedType = false; + // TODO: Remove following temporary methods when removing + // AlignedEntryRefT + size_t unscaled_offset() const { return offset(); } + static size_t unscaled_offset_size() { return offsetSize(); } }; /** diff --git a/vespalib/src/vespa/vespalib/datastore/unique_store_saver.h b/vespalib/src/vespa/vespalib/datastore/unique_store_saver.h index d4543cc7d43..d90f6dab16b 100644 --- a/vespalib/src/vespa/vespalib/datastore/unique_store_saver.h +++ b/vespalib/src/vespa/vespalib/datastore/unique_store_saver.h @@ -38,8 +38,8 @@ public: uint32_t mapEntryRefToEnumValue(EntryRef ref) const { if (ref.valid()) { RefType iRef(ref); - assert(iRef.offset() < _enumValues[iRef.bufferId()].size()); - uint32_t enumValue = _enumValues[iRef.bufferId()][iRef.offset()]; + assert(iRef.unscaled_offset() < _enumValues[iRef.bufferId()].size()); + uint32_t enumValue = _enumValues[iRef.bufferId()][iRef.unscaled_offset()]; assert(enumValue != 0); return enumValue; } else { diff --git a/vespalib/src/vespa/vespalib/datastore/unique_store_saver.hpp b/vespalib/src/vespa/vespalib/datastore/unique_store_saver.hpp index c29477525c0..f6f258f57da 100644 --- a/vespalib/src/vespa/vespalib/datastore/unique_store_saver.hpp +++ b/vespalib/src/vespa/vespalib/datastore/unique_store_saver.hpp @@ -26,8 +26,8 @@ UniqueStoreSaver::enumerateValue(EntryRef ref) { RefType iRef(ref); assert(iRef.valid()); - assert(iRef.offset() < _enumValues[iRef.bufferId()].size()); - uint32_t &enumVal = _enumValues[iRef.bufferId()][iRef.offset()]; + assert(iRef.unscaled_offset() < _enumValues[iRef.bufferId()].size()); + uint32_t &enumVal = _enumValues[iRef.bufferId()][iRef.unscaled_offset()]; assert(enumVal == 0u); enumVal = _next_enum_val; ++_next_enum_val; @@ -41,7 +41,7 @@ UniqueStoreSaver::enumerateValues() for (uint32_t bufferId = 0; bufferId < RefType::numBuffers(); ++bufferId) { const BufferState &state = _store.getBufferState(bufferId); if (state.isActive()) { - _enumValues[bufferId].resize(state.size()); + _enumValues[bufferId].resize(state.size() / state.getArraySize()); } } _next_enum_val = 1; -- cgit v1.2.3