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);