diff options
author | Arne Juul <arnej@verizonmedia.com> | 2020-12-08 08:47:05 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2020-12-08 08:48:20 +0000 |
commit | a27cdab6ab2c946e2ad61a429f96ebf23e0167ca (patch) | |
tree | 5ce1675558af641f116b6134ff201f3d529b39f7 | |
parent | ea1305d578ca3ff11503eb30109a408f6c150fcb (diff) |
review follow-ups
* own a copy of the type
* account for cells memory
* also assert on number of cells
-rw-r--r-- | eval/src/vespa/eval/eval/dense_cells_value.cpp | 7 | ||||
-rw-r--r-- | eval/src/vespa/eval/eval/dense_cells_value.h | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/eval/src/vespa/eval/eval/dense_cells_value.cpp b/eval/src/vespa/eval/eval/dense_cells_value.cpp index 15de4dc0b26..126ef806668 100644 --- a/eval/src/vespa/eval/eval/dense_cells_value.cpp +++ b/eval/src/vespa/eval/eval/dense_cells_value.cpp @@ -6,6 +6,13 @@ namespace vespalib::eval { template<typename T> DenseCellsValue<T>::~DenseCellsValue() = default; +template<typename T> MemoryUsage +DenseCellsValue<T>::get_memory_usage() const { + auto usage = self_memory_usage<DenseCellsValue<T>>(); + usage.merge(vector_extra_memory_usage(_cells)); + return usage; +} + template class DenseCellsValue<double>; template class DenseCellsValue<float>; diff --git a/eval/src/vespa/eval/eval/dense_cells_value.h b/eval/src/vespa/eval/eval/dense_cells_value.h index 47ca0fb2e09..ccf6c1388aa 100644 --- a/eval/src/vespa/eval/eval/dense_cells_value.h +++ b/eval/src/vespa/eval/eval/dense_cells_value.h @@ -11,20 +11,19 @@ namespace vespalib::eval { template<typename T> class DenseCellsValue : public Value { private: - const ValueType &_type; + ValueType _type; std::vector<T> _cells; public: DenseCellsValue(const ValueType &type_ref, std::vector<T> cells) : _type(type_ref), _cells(std::move(cells)) { assert(check_cell_type<T>(_type.cell_type())); + assert(_cells.size() == _type.dense_subspace_size()); } const ValueType &type() const override { return _type; } TypedCells cells() const override { return TypedCells(_cells); } const Index &index() const override { return TrivialIndex::get(); } - MemoryUsage get_memory_usage() const override { - return self_memory_usage<DenseCellsValue<T>>(); - } + MemoryUsage get_memory_usage() const override; ~DenseCellsValue(); }; |