mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-10 07:01:51 +08:00
fix aligned_stack_memory_handler for null pointers
(transplanted from 6441e8727b32c6cbb194c0ce1bbd784c2a24a2b2 )
This commit is contained in:
parent
ebad34db21
commit
46f4bd9ed4
@ -494,12 +494,12 @@ template<typename T> class aligned_stack_memory_handler
|
|||||||
aligned_stack_memory_handler(T* ptr, size_t size, bool dealloc)
|
aligned_stack_memory_handler(T* ptr, size_t size, bool dealloc)
|
||||||
: m_ptr(ptr), m_size(size), m_deallocate(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);
|
Eigen::internal::construct_elements_of_array(m_ptr, size);
|
||||||
}
|
}
|
||||||
~aligned_stack_memory_handler()
|
~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);
|
Eigen::internal::destruct_elements_of_array<T>(m_ptr, m_size);
|
||||||
if(m_deallocate)
|
if(m_deallocate)
|
||||||
Eigen::internal::aligned_free(m_ptr);
|
Eigen::internal::aligned_free(m_ptr);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user