Fix incomplete previous patch on matrix comparision.

This commit is contained in:
Gael Guennebaud 2016-04-13 18:32:56 +02:00
parent 2630d97c62
commit b7716c0328
2 changed files with 3 additions and 2 deletions

View File

@ -1007,7 +1007,7 @@ struct transposition_matrix_product
StorageIndex j = 0; StorageIndex j = 0;
const typename Dest::Scalar *dst_data = internal::extract_data(dst); const typename Dest::Scalar *dst_data = internal::extract_data(dst);
if(!(is_same<MatrixTypeCleaned,Dest>::value && dst_data == extract_data(mat))) if(!(is_same<MatrixTypeCleaned,Dest>::value && dst_data!=0 && dst_data == extract_data(mat)))
dst = mat; dst = mat;
for(Index k=(Transposed?size-1:0) ; Transposed?k>=0:k<size ; Transposed?--k:++k) for(Index k=(Transposed?size-1:0) ; Transposed?k>=0:k<size ; Transposed?--k:++k)

View File

@ -243,8 +243,9 @@ template<typename VectorsType, typename CoeffsType, int Side> class HouseholderS
{ {
workspace.resize(rows()); workspace.resize(rows());
Index vecs = m_length; Index vecs = m_length;
const typename Dest::Scalar *dst_data = internal::extract_data(dst);
if( internal::is_same<typename internal::remove_all<VectorsType>::type,Dest>::value if( internal::is_same<typename internal::remove_all<VectorsType>::type,Dest>::value
&& internal::extract_data(dst) == internal::extract_data(m_vectors)) && dst_data!=0 && dst_data == internal::extract_data(m_vectors))
{ {
// in-place // in-place
dst.diagonal().setOnes(); dst.diagonal().setOnes();