From 8f9b573da545b86fffb858d0177447c0382f1bea Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Thu, 17 Oct 2019 13:30:24 +0200 Subject: [PATCH] math: fix uninitalised member value in arraynd<>. --- src/lol/math/arraynd.h | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/lol/math/arraynd.h b/src/lol/math/arraynd.h index 4ce48ec8..61a31b63 100644 --- a/src/lol/math/arraynd.h +++ b/src/lol/math/arraynd.h @@ -102,22 +102,20 @@ public: typedef array super; typedef typename super::element_t element_t; - inline arraynd() - { - } + inline arraynd() = default; inline arraynd(vec_t sizes, element_t e = element_t()) : m_sizes(sizes) { - fix_sizes(e); + resize_data(e); } /* Additional constructor if ptrdiff_t != int */ template::value, int>::type> inline arraynd(vec_t sizes, element_t e = element_t()) + : m_sizes(vec_t(sizes)) { - m_sizes = vec_t(sizes); - fix_sizes(e); + resize_data(e); } inline arraynd(std::initializer_list > initializer) @@ -127,7 +125,7 @@ public: for (auto inner_initializer : initializer) inner_initializer.fill_sizes(&m_sizes[N - 2]); - fix_sizes(); + resize_data(); int pos = 0; @@ -240,7 +238,7 @@ public: inline void resize_s(vec_t sizes, element_t e = element_t()) { m_sizes = sizes; - fix_sizes(e); + resize_data(e); } inline vec_t size() const @@ -262,7 +260,7 @@ public: inline ptrdiff_t bytes_s() const { return super::bytes_s(); } private: - inline void fix_sizes(element_t e = element_t()) + inline void resize_data(element_t e = element_t()) { ptrdiff_t total_size = 1; @@ -274,7 +272,7 @@ private: this->array::resize(total_size, e); } - vec_t m_sizes; + vec_t m_sizes { 0 }; }; template using array2d = arraynd<2, T...>;