From a9860e3554620f2a35086ec150326738f5695e68 Mon Sep 17 00:00:00 2001 From: bastih Date: Fri, 15 Nov 2013 15:32:26 +0100 Subject: [PATCH] Add test to prevent insertion of values larger than what can be represented --- src/lib/storage/BitCompressedVector.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/storage/BitCompressedVector.h b/src/lib/storage/BitCompressedVector.h index f555adb68..f674f72e4 100644 --- a/src/lib/storage/BitCompressedVector.h +++ b/src/lib/storage/BitCompressedVector.h @@ -95,7 +95,9 @@ class BitCompressedVector : public BaseAttributeVector { void set(size_t column, size_t row, T value) { checkAccess(column, row); - +#ifdef EXPENSIVE_ASSERTIONS + if (value >= (1 << _bits[column])) throw std::out_of_range("trying to insert value larger than can be stored"); +#endif auto offset = _blockOffset(row); auto colOffset = _offsetForColumn(column); auto block = _blockPosition(row) + (offset + colOffset) / _bit_width;