diff options
author | Håvard Pettersen <havardpe@yahooinc.com> | 2022-06-01 08:30:44 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@yahooinc.com> | 2022-06-07 13:11:26 +0000 |
commit | 74a456f904c5eb6d3eca10ac8dad795fd035ccbc (patch) | |
tree | 24596df48ee9cc3d25453e408f56611dc92a474c /vespalib | |
parent | 36663583469ce63be5467907dd8e976d798f8f31 (diff) |
fix undefined behavior in unit tests -- WIP
Diffstat (limited to 'vespalib')
-rw-r--r-- | vespalib/src/vespa/vespalib/datastore/array_store.h | 6 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/datastore/datastore.h | 2 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/datastore/datastorebase.h | 5 |
3 files changed, 12 insertions, 1 deletions
diff --git a/vespalib/src/vespa/vespalib/datastore/array_store.h b/vespalib/src/vespa/vespalib/datastore/array_store.h index 30e0c3ab91f..7bf24194ce2 100644 --- a/vespalib/src/vespa/vespalib/datastore/array_store.h +++ b/vespalib/src/vespa/vespalib/datastore/array_store.h @@ -101,6 +101,12 @@ public: vespalib::GenerationHolder &getGenerationHolder() { return _store.getGenerationHolder(); } void setInitializing(bool initializing) { _store.setInitializing(initializing); } + // need object location before construction + static vespalib::GenerationHolder &getGenerationHolderLocation(ArrayStore &self) { + return DataStoreBase::getGenerationHolderLocation(self._store); + } + + // Should only be used for unit testing const BufferState &bufferState(EntryRef ref) const; diff --git a/vespalib/src/vespa/vespalib/datastore/datastore.h b/vespalib/src/vespa/vespalib/datastore/datastore.h index 3ede2ada953..bb460900606 100644 --- a/vespalib/src/vespa/vespalib/datastore/datastore.h +++ b/vespalib/src/vespa/vespalib/datastore/datastore.h @@ -35,7 +35,7 @@ public: DataStoreT(const DataStoreT &rhs) = delete; DataStoreT &operator=(const DataStoreT &rhs) = delete; DataStoreT(); - ~DataStoreT(); + ~DataStoreT() override; /** * Increase number of dead elements in buffer. diff --git a/vespalib/src/vespa/vespalib/datastore/datastorebase.h b/vespalib/src/vespa/vespalib/datastore/datastorebase.h index 0063f497558..20104670085 100644 --- a/vespalib/src/vespa/vespalib/datastore/datastorebase.h +++ b/vespalib/src/vespa/vespalib/datastore/datastorebase.h @@ -370,6 +370,11 @@ public: return _genHolder; } + // need object location before construction + static vespalib::GenerationHolder &getGenerationHolderLocation(DataStoreBase &self) { + return self._genHolder; + } + uint32_t startCompactWorstBuffer(uint32_t typeId); std::vector<uint32_t> startCompactWorstBuffers(CompactionSpec compaction_spec, const CompactionStrategy &compaction_strategy); uint64_t get_compaction_count() const { return _compaction_count.load(std::memory_order_relaxed); } |