diff --git a/Eigen/src/Core/util/Memory.h b/Eigen/src/Core/util/Memory.h index e84c664a9..8e4eccd95 100644 --- a/Eigen/src/Core/util/Memory.h +++ b/Eigen/src/Core/util/Memory.h @@ -494,12 +494,12 @@ template class aligned_stack_memory_handler aligned_stack_memory_handler(T* ptr, size_t size, bool dealloc) : m_ptr(ptr), m_size(size), m_deallocate(dealloc) { - if(NumTraits::RequireInitialization) + if(NumTraits::RequireInitialization && m_ptr) Eigen::internal::construct_elements_of_array(m_ptr, size); } ~aligned_stack_memory_handler() { - if(NumTraits::RequireInitialization) + if(NumTraits::RequireInitialization && m_ptr) Eigen::internal::destruct_elements_of_array(m_ptr, m_size); if(m_deallocate) Eigen::internal::aligned_free(m_ptr);