From acd4778eca8f38d0d21c1c4e23bf1740d86c21bc Mon Sep 17 00:00:00 2001
From: Maxence Laurent <maxence.laurent.etu@univ-lille.fr>
Date: Tue, 1 Jun 2021 20:19:24 +0200
Subject: [PATCH] =?UTF-8?q?[FIX]=20fuite=20de=20m=C3=A9moire?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Compte Rendu PA.pdf | Bin 262423 -> 262362 bytes
 initializeData.c    |  41 +++++++-
 initializeData.h    |   4 +
 main.c              | 229 ++++++++++++++++++++++++--------------------
 4 files changed, 164 insertions(+), 110 deletions(-)

diff --git a/Compte Rendu PA.pdf b/Compte Rendu PA.pdf
index 7895d5fdb0032babba0eb5d739c150dccc625c6d..75a71f46975f39a409f0b35a8d60e7aed0775842 100644
GIT binary patch
delta 4369
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

delta 4431
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
C&P;Lu

diff --git a/initializeData.c b/initializeData.c
index 297a735..d095891 100644
--- a/initializeData.c
+++ b/initializeData.c
@@ -95,7 +95,7 @@ void create_flight (Flight **fl, char **line, const char separators[])
     }
     else
     {
-        (*fl)->airline = word;
+        (*fl)->airline = strdup (word);
     }
     word = strsep (line, separators);
     if (strcmp (word, "") == 0)
@@ -104,7 +104,7 @@ void create_flight (Flight **fl, char **line, const char separators[])
     }
     else
     {
-        (*fl)->org_air = word;
+        (*fl)->org_air = strdup (word);
     }
     word = strsep (line, separators);
     if (strcmp (word, "") == 0)
@@ -113,7 +113,7 @@ void create_flight (Flight **fl, char **line, const char separators[])
     }
     else
     {
-        (*fl)->dest_air = word;
+        (*fl)->dest_air = strdup (word);
     }
     word = strsep (line, separators);
     if (strcmp (word, "") == 0)
@@ -274,8 +274,9 @@ void load_flights (Table_hash_airlines *thal, Table_hash_airports *thap, FILE *f
 
     while (getline (&line, &len, fd) != -1) // on récupère chaque ligne.
     {
+        char *  line2      = line;
         Flight *new_flight = malloc (sizeof (Flight));
-        create_flight (&new_flight, &line, separators);
+        create_flight (&new_flight, &line2, separators);
 
         Liste_Airlines *l = thal->tab_airlines[hash_function_airline (new_flight->airline)];
 
@@ -372,6 +373,9 @@ void free_all_airlines (Table_hash_airlines *thal)
                     {
                         Flight *tmp                          = thal->tab_airlines[i]->liste_flights;
                         thal->tab_airlines[i]->liste_flights = NULL;
+                        free (tmp->airline);
+                        free (tmp->org_air);
+                        free (tmp->dest_air);
                         free (tmp);
                     }
                     else
@@ -379,6 +383,9 @@ void free_all_airlines (Table_hash_airlines *thal)
                         Flight *tmp                          = thal->tab_airlines[i]->liste_flights;
                         thal->tab_airlines[i]->liste_flights = thal->tab_airlines[i]->liste_flights->suiv_airline;
                         tmp->suiv_airline                    = NULL;
+                        free (tmp->airline);
+                        free (tmp->org_air);
+                        free (tmp->dest_air);
                         free (tmp);
                     }
                 }
@@ -409,3 +416,29 @@ void free_all_airports (Table_hash_airports *thap)
         }
     }
 }
+
+int is_empty_airlines (Table_hash_airlines thal)
+{
+    for (int i = 0; i < AIRLINE_SIZE_TABLE; i++)
+    {
+        if (thal.tab_airlines[i] != NULL)
+        {
+            return 1;
+        }
+    }
+
+    return 0;
+}
+
+int is_empty_airports (Table_hash_airports thap)
+{
+    for (int i = 0; i < AIRPORT_SIZE_TABLE; i++)
+    {
+        if (thap.tab_airports[i] != NULL)
+        {
+            return 1;
+        }
+    }
+
+    return 0;
+}
diff --git a/initializeData.h b/initializeData.h
index 56d9f6c..185be28 100644
--- a/initializeData.h
+++ b/initializeData.h
@@ -114,3 +114,7 @@ int hash_function_airport (char *);
 void free_all_airlines (Table_hash_airlines *);
 
 void free_all_airports (Table_hash_airports *);
+
+int is_empty_airlines (Table_hash_airlines);
+
+int is_empty_airports (Table_hash_airports);
diff --git a/main.c b/main.c
index 6fe2927..2c4e128 100644
--- a/main.c
+++ b/main.c
@@ -26,136 +26,153 @@ int main ()
         load_airports (&thap, airport_file);
     }
 
-    if (flights_file != NULL)
+    if (flights_file != NULL && (is_empty_airlines (thal) == 1 && is_empty_airports (thap) == 1))
     {
         load_flights (&thal, &thap, flights_file);
     }
-
-    printf ("Chargement terminé !\n");
-
-    char * requetes    = NULL;
-    char * commande    = NULL;
-    char * airline_id  = NULL;
-    char * airport_id1 = NULL;
-    char * airport_id2 = NULL;
-    char * date        = NULL;
-    char * time        = "";
-    char * limit       = "";
-    size_t len         = 0;
-
-    while (getline (&requetes, &len, stdin) != -1)
+    if (is_empty_airlines (thal) == 0 || is_empty_airports (thap) == 0)
     {
-        commande = strsep (&requetes, " ");
-        commande = strtok (commande, "\n");
-        if (strcmp (commande, "quit") == 0)
-        {
-            break;
-        }
-        else if (strcmp (commande, "show-airports") == 0)
-        {
-            airline_id = strsep (&requetes, " \n");
-            printf ("> Resultat de la requete %s %s :\n", commande, airline_id);
-            printf ("\n");
-            show_airports (airline_id, thal, thap);
-        }
-        else if (strcmp (commande, "show-airlines") == 0)
-        {
-            airport_id1 = strsep (&requetes, " \n");
-            printf ("> Resultat de la requete %s %s :\n", commande, airport_id1);
-            printf ("\n");
-            show_airlines (airport_id1, thal, thap);
-        }
-        else if (strcmp (commande, "show-flights") == 0)
+        printf ("Chargement des fichiers impossible, veuillez vérifier les fichiers !\n");
+    }
+    else
+    {
+        printf ("Chargement terminé !\n");
+
+        char * requetes    = NULL;
+        char * commande    = NULL;
+        char * airline_id  = NULL;
+        char * airport_id1 = NULL;
+        char * airport_id2 = NULL;
+        char * date        = NULL;
+        char * time        = "";
+        char * limit       = "";
+        size_t len         = 0;
+
+        while (getline (&requetes, &len, stdin) != -1)
         {
-            airport_id1 = strsep (&requetes, " \n");
-            date        = strsep (&requetes, " \n");
-            time        = strsep (&requetes, " \n");
-            limit       = strsep (&requetes, " \n");
-
-            if (limit == NULL)
+            char *requetes2 = requetes;
+            commande        = strsep (&requetes2, " ");
+            commande        = strtok (commande, "\n");
+            if (strcmp (commande, "quit") == 0)
+            {
+                break;
+            }
+            else if (strcmp (commande, "show-airports") == 0)
+            {
+                airline_id = strsep (&requetes2, " \n");
+                printf ("> Resultat de la requete %s %s :\n", commande, airline_id);
+                printf ("\n");
+                show_airports (airline_id, thal, thap);
+            }
+            else if (strcmp (commande, "show-airlines") == 0)
             {
+                airport_id1 = strsep (&requetes2, " \n");
                 printf ("> Resultat de la requete %s %s :\n", commande, airport_id1);
                 printf ("\n");
-                show_flights (airport_id1, thap, date, 0);
+                show_airlines (airport_id1, thal, thap);
             }
-            else
+            else if (strcmp (commande, "show-flights") == 0)
             {
-                if (strcmp (time, "") != 0 && strcmp (limit, "") != 0)
+                airport_id1 = strsep (&requetes2, " \n");
+                date        = strsep (&requetes2, " \n");
+                time        = strsep (&requetes2, " \n");
+                limit       = strsep (&requetes2, " \n");
+
+                if (limit == NULL)
                 {
-                    printf ("> Resultat de la requete %s %s %s %s :\n", commande, airport_id1, time, limit);
+                    printf ("> Resultat de la requete %s %s :\n", commande, airport_id1);
                     printf ("\n");
-                    show_flights (airport_id1, thap, date, 2, time, limit);
+                    show_flights (airport_id1, thap, date, 0);
                 }
-                if (strcmp (time, "") != 0 && strcmp (limit, "") == 0)
+                else
                 {
-                    printf ("> Resultat de la requete %s %s %s :\n", commande, airport_id1, time);
-                    printf ("\n");
-                    show_flights (airport_id1, thap, date, 1, time);
-                }
-                if (strcmp (time, "") == 0 && strcmp (limit, "") != 0)
-                {
-                    printf ("> Resultat de la requete %s %s %s :\n", commande, airport_id1, limit);
-                    printf ("\n");
-                    show_flights (airport_id1, thap, date, 1, limit);
+                    if (strcmp (time, "") != 0 && strcmp (limit, "") != 0)
+                    {
+                        printf ("> Resultat de la requete %s %s %s %s :\n", commande, airport_id1, time, limit);
+                        printf ("\n");
+                        show_flights (airport_id1, thap, date, 2, time, limit);
+                    }
+                    if (strcmp (time, "") != 0 && strcmp (limit, "") == 0)
+                    {
+                        printf ("> Resultat de la requete %s %s %s :\n", commande, airport_id1, time);
+                        printf ("\n");
+                        show_flights (airport_id1, thap, date, 1, time);
+                    }
+                    if (strcmp (time, "") == 0 && strcmp (limit, "") != 0)
+                    {
+                        printf ("> Resultat de la requete %s %s %s :\n", commande, airport_id1, limit);
+                        printf ("\n");
+                        show_flights (airport_id1, thap, date, 1, limit);
+                    }
                 }
             }
-        }
-        else if (strcmp (commande, "most-delayed-flights") == 0)
-        {
-            printf ("> Resultat de la requete %s :\n", commande);
-            printf ("\n");
-            most_delayed_flights (thal);
-        }
-        else if (strcmp (commande, "most-delayed-airlines") == 0)
-        {
-            printf ("> Resultat de la requete %s :\n", commande);
-            printf ("\n");
-            most_delayed_airlines (thal);
-        }
-        else if (strcmp (commande, "delayed-airline") == 0)
-        {
-            airline_id = strsep (&requetes, " \n");
+            else if (strcmp (commande, "most-delayed-flights") == 0)
+            {
+                printf ("> Resultat de la requete %s :\n", commande);
+                printf ("\n");
+                most_delayed_flights (thal);
+            }
+            else if (strcmp (commande, "most-delayed-airlines") == 0)
+            {
+                printf ("> Resultat de la requete %s :\n", commande);
+                printf ("\n");
+                most_delayed_airlines (thal);
+            }
+            else if (strcmp (commande, "delayed-airline") == 0)
+            {
+                airline_id = strsep (&requetes2, " \n");
 
-            printf ("> Resultat de la requete %s %s :\n", commande, airline_id);
-            printf ("\n");
-            delayed_airline (airline_id, thal);
-        }
-        else if (strcmp (commande, "most-delayed-airlines-at-airport") == 0)
-        {
-            airport_id1 = strsep (&requetes, " \n");
+                printf ("> Resultat de la requete %s %s :\n", commande, airline_id);
+                printf ("\n");
+                delayed_airline (airline_id, thal);
+            }
+            else if (strcmp (commande, "most-delayed-airlines-at-airport") == 0)
+            {
+                airport_id1 = strsep (&requetes2, " \n");
 
-            printf ("> Resultat de la requete %s %s :\n", commande, airport_id1);
-            printf ("\n");
-            most_delayed_airlines_at_airport (airport_id1, thal, thap);
-        }
-        else if (strcmp (commande, "changed-flights") == 0)
-        {
-            date = strsep (&requetes, " \n");
+                printf ("> Resultat de la requete %s %s :\n", commande, airport_id1);
+                printf ("\n");
+                most_delayed_airlines_at_airport (airport_id1, thal, thap);
+            }
+            else if (strcmp (commande, "changed-flights") == 0)
+            {
+                date = strsep (&requetes2, " \n");
 
-            printf ("> Resultat de la requete %s %s :\n", commande, date);
-            printf ("\n");
-            changed_flights (date, thal);
-        }
-        else if (strcmp (commande, "avg-flight-duration") == 0)
-        {
-            airport_id1 = strsep (&requetes, " \n");
-            airport_id2 = strsep (&requetes, " \n");
+                printf ("> Resultat de la requete %s %s :\n", commande, date);
+                printf ("\n");
+                changed_flights (date, thal);
+            }
+            else if (strcmp (commande, "avg-flight-duration") == 0)
+            {
+                airport_id1 = strsep (&requetes2, " \n");
+                airport_id2 = strsep (&requetes2, " \n");
 
-            printf ("> Resultat de la requete %s %s %s :\n", commande, airport_id1, airport_id2);
+                printf ("> Resultat de la requete %s %s %s :\n", commande, airport_id1, airport_id2);
+                printf ("\n");
+                avg_flight_duration (airport_id1, airport_id2, thap);
+            }
+            else
+            {
+                printf ("Vous avez entré une mauvaise requête ! Veuillez réessayer !\n");
+            }
             printf ("\n");
-            avg_flight_duration (airport_id1, airport_id2, thap);
         }
-        else
-        {
-            printf ("Vous avez entré une mauvaise requête ! Veuillez réessayer !\n");
-        }
-        printf ("\n");
-    }
 
-    printf ("Le programme va prendre fin ...\n");
+        printf ("Le programme va prendre fin ...\n");
+
+        free_all_airlines (&thal);
+        free_all_airports (&thap);
+        free (requetes);
+    }
 
-    free_all_airlines (&thal);
-    free_all_airports (&thap);
+    if (is_empty_airlines (thal) == 1)
+    {
+        free_all_airlines (&thal);
+    }
+    if (is_empty_airports (thap) == 1)
+    {
+        free_all_airports (&thap);
+    }
 
     fclose (airline_file);
     fclose (airport_file);
-- 
GitLab