diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2019-08-23 15:06:13 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2019-08-23 15:06:13 +0200 |
commit | ec52287f15d6304b44976d77a94590df0a6a7498 (patch) | |
tree | 92bc41699ee062b0188ab9fe70569a9d45f88bd4 /vespalib | |
parent | 47e665c14670b193fafab3ec47e5e6ed3e13bf5e (diff) |
Add workaround for use of deprecated AlignedEntryRefT.
Diffstat (limited to 'vespalib')
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 <typename RefT> DataStoreT<RefT>::DataStoreT() : DataStoreBase(RefType::numBuffers(), - RefType::offsetSize() / RefType::align(1)) + RefType::unscaled_offset_size()) { } @@ -39,8 +39,7 @@ DataStoreT<RefT>::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 <typename RefT> 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<EntryT, RefT>::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<EntryT, RefT>::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; |