aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/TriangularMatrix.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2016-04-13 18:26:08 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2016-04-13 18:26:08 +0200
commit2630d97c625d642a205ecf00723efd8e28b9639e (patch)
tree9b4f30544fe203afa9cb50f536dd78a9ecef7a1a /Eigen/src/Core/TriangularMatrix.h
parent512ba0ac760c8dd0bd667cbe74f53c440b7e835f (diff)
Fix detection of same matrices when both matrices are not handled by extract_data.
Diffstat (limited to 'Eigen/src/Core/TriangularMatrix.h')
-rw-r--r--Eigen/src/Core/TriangularMatrix.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/Eigen/src/Core/TriangularMatrix.h b/Eigen/src/Core/TriangularMatrix.h
index e6d137e40..fafc2a0c6 100644
--- a/Eigen/src/Core/TriangularMatrix.h
+++ b/Eigen/src/Core/TriangularMatrix.h
@@ -532,7 +532,8 @@ template<typename _MatrixType, unsigned int _Mode> class TriangularViewImpl<_Mat
template<typename RhsType, typename DstType>
EIGEN_DEVICE_FUNC
EIGEN_STRONG_INLINE void _solve_impl(const RhsType &rhs, DstType &dst) const {
- if(!(internal::is_same<RhsType,DstType>::value && internal::extract_data(dst) == internal::extract_data(rhs)))
+ const typename DstType::Scalar *dst_data = internal::extract_data(dst);
+ if(!(internal::is_same<RhsType,DstType>::value && dst_data!=0 && dst_data == internal::extract_data(rhs)))
dst = rhs;
this->solveInPlace(dst);
}