]> git.tdb.fi Git - libs/math.git/commitdiff
Fix a memory access error in DynamicMatrix::invert
authorMikko Rasa <tdb@tdb.fi>
Sun, 2 Jun 2019 13:23:08 +0000 (16:23 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sun, 2 Jun 2019 16:13:09 +0000 (19:13 +0300)
Gauss_jordan returns a reference to the result, which is a local
variable.  It needs to be assigned to *this to retain it.

source/linal/dynamicmatrix.h

index 6d45657a6f4fd99a41aaec63e0c401cc6c3587d5..1b191a1b3f9a5d4696c4d535e94553e6b96f93e6 100644 (file)
@@ -308,7 +308,8 @@ inline DynamicMatrix<T> &DynamicMatrix<T>::invert()
        for(unsigned i=0; i<rows_; ++i)
                r(i, i) = T(1);
 
-       return gauss_jordan(*this, r);
+       gauss_jordan(*this, r);
+       return *this = r;
 }
 
 template<typename T>