From e9091bd4032ba9ce4fa67e8451da2f4d07e5cb0f Mon Sep 17 00:00:00 2001 From: Alessandro Ferro <49845537+xfarrow@users.noreply.github.com> Date: Thu, 10 Jun 2021 18:04:44 +0200 Subject: [PATCH] Library 5 bugfix --- librerie/exercise5/build.sh | 2 +- librerie/exercise5/matrix/csr/matrixcsr.cpp | 15 ++++++++++++--- librerie/exercise5/zmytest/test.cpp | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/librerie/exercise5/build.sh b/librerie/exercise5/build.sh index 5ccdfe1..69500a1 100755 --- a/librerie/exercise5/build.sh +++ b/librerie/exercise5/build.sh @@ -1,7 +1,7 @@ #! /bin/bash -g++-10 -g -o main \ +g++ -O3 -o main \ zlasdtest/exercise1/simpletest.cpp zlasdtest/exercise1/fulltest.cpp \ zlasdtest/exercise2/simpletest.cpp zlasdtest/exercise2/fulltest.cpp \ zlasdtest/exercise3/simpletest.cpp zlasdtest/exercise3/fulltest.cpp \ diff --git a/librerie/exercise5/matrix/csr/matrixcsr.cpp b/librerie/exercise5/matrix/csr/matrixcsr.cpp index d3dbfb5..affbfa3 100755 --- a/librerie/exercise5/matrix/csr/matrixcsr.cpp +++ b/librerie/exercise5/matrix/csr/matrixcsr.cpp @@ -73,13 +73,22 @@ MatrixCSR& MatrixCSR::operator=(MatrixCSR&& toMove) noexcept{ std::swap(size, toMove.size); std::swap(head, toMove.head); std::swap(R, toMove.R); - toMove.R.Resize(1); - toMove.R[0] = &toMove.head; - Node** oldHead = R[0]; + + // Fix of the R vector after the swap, both in (*this) and in toMove + + Node** oldHead; + + oldHead = R[0]; for(ulong i=0 ; i>dimension; return dimension; }