fix aligned_stack_memory_handler for null pointers

(transplanted from 6441e8727b32c6cbb194c0ce1bbd784c2a24a2b2
)
This commit is contained in:
Gael Guennebaud 2011-04-21 09:00:55 +02:00
parent ebad34db21
commit 46f4bd9ed4

View File

@ -494,12 +494,12 @@ template<typename T> 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<T>::RequireInitialization)
if(NumTraits<T>::RequireInitialization && m_ptr)
Eigen::internal::construct_elements_of_array(m_ptr, size);
}
~aligned_stack_memory_handler()
{
if(NumTraits<T>::RequireInitialization)
if(NumTraits<T>::RequireInitialization && m_ptr)
Eigen::internal::destruct_elements_of_array<T>(m_ptr, m_size);
if(m_deallocate)
Eigen::internal::aligned_free(m_ptr);