aboutsummaryrefslogtreecommitdiffstats
path: root/eval/src
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-12-08 08:47:05 +0000
committerArne Juul <arnej@verizonmedia.com>2020-12-08 08:48:20 +0000
commita27cdab6ab2c946e2ad61a429f96ebf23e0167ca (patch)
tree5ce1675558af641f116b6134ff201f3d529b39f7 /eval/src
parentea1305d578ca3ff11503eb30109a408f6c150fcb (diff)
review follow-ups
* own a copy of the type * account for cells memory * also assert on number of cells
Diffstat (limited to 'eval/src')
-rw-r--r--eval/src/vespa/eval/eval/dense_cells_value.cpp7
-rw-r--r--eval/src/vespa/eval/eval/dense_cells_value.h7
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();
};