aboutsummaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@yahooinc.com>2022-06-01 08:30:44 +0000
committerHåvard Pettersen <havardpe@yahooinc.com>2022-06-07 13:11:26 +0000
commit74a456f904c5eb6d3eca10ac8dad795fd035ccbc (patch)
tree24596df48ee9cc3d25453e408f56611dc92a474c /vespalib
parent36663583469ce63be5467907dd8e976d798f8f31 (diff)
fix undefined behavior in unit tests -- WIP
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/vespa/vespalib/datastore/array_store.h6
-rw-r--r--vespalib/src/vespa/vespalib/datastore/datastore.h2
-rw-r--r--vespalib/src/vespa/vespalib/datastore/datastorebase.h5
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); }