fix all memory management issues by copying references BUT still deleting object when RunProject die

This commit is contained in:
Mylloon 2023-10-28 03:43:33 +02:00
parent 9ebf1af816
commit 095419a1f8
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
2 changed files with 8 additions and 15 deletions

View file

@ -13,16 +13,11 @@ void Projet::_copy(const Projet &src) {
// Copie des tâches
taches.reserve(src.taches.size());
for (Tache *t : src.taches) {
taches.push_back(new Tache(*t));
taches.push_back(t);
}
}
void Projet::free_taches() {
for (Tache *it : taches) {
delete it;
}
taches.clear();
}
void Projet::free_taches() { taches.clear(); }
Projet::Projet(const Projet &src) : debut(src.debut), fin(src.fin) {
_copy(src);

View file

@ -1,16 +1,14 @@
#include "../includes/RunProjet.hpp"
RunProjet::RunProjet(ProtoProjet &src) : ProtoProjet(src) {
// TODO: Ici on COPIE les tâches de ProtoProjet au lieu de juste prendre les
// références et les retirer de sa liste
// Il faudrait que l'on trouve un moyen que ça n'arrive pas pour éviter une
// copie inutile
RunProjet::RunProjet(ProtoProjet &src) : ProtoProjet(src) { src.free_taches(); }
src.free_taches();
RunProjet::~RunProjet() {
// Ici on veut supprimes les tâches
for (Tache *it : taches) {
delete it;
}
}
RunProjet::~RunProjet() {}
RunProjet::RunProjet(const RunProjet &src) : ProtoProjet(src) {}
const RunProjet &RunProjet::operator=(const RunProjet &src) {