bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 3/4] main: also free memory on errors


From: Akim Demaille
Subject: [PATCH 3/4] main: also free memory on errors
Date: Tue, 22 Oct 2019 18:58:05 +0200

* src/derives.c (derives_free): Beware of NULL.
* src/main.c (main): Let the 'finish' label include memory release.
---
 src/derives.c | 7 +++++--
 src/main.c    | 4 ++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/derives.c b/src/derives.c
index c44a9fd2..8de79866 100644
--- a/src/derives.c
+++ b/src/derives.c
@@ -109,6 +109,9 @@ derives_compute (void)
 void
 derives_free (void)
 {
-  free (derives[0]);
-  free (derives);
+  if (derives)
+    {
+      free (derives[0]);
+      free (derives);
+    }
 }
diff --git a/src/main.c b/src/main.c
index 06bcb1c5..ab0229f5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -207,6 +207,8 @@ main (int argc, char *argv[])
       timevar_pop (tv_parser);
     }
 
+ finish:
+
   timevar_push (tv_free);
   nullable_free ();
   derives_free ();
@@ -228,8 +230,6 @@ main (int argc, char *argv[])
   if (trace_flag & trace_bitsets)
     bitset_stats_dump (stderr);
 
- finish:
-
   /* Stop timing and print the times.  */
   timevar_stop (tv_total);
   timevar_print (stderr);
-- 
2.23.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]