From b051571de836f3c1b327ed0906215733ddb66f06 Mon Sep 17 00:00:00 2001 From: Matthew Leeds Date: Thu, 28 Jul 2016 15:51:02 -0400 Subject: [PATCH] builder: Fix a few memory leaks These changes fix some memory leaks that valgrind pointed out. --- builder/builder-cache.c | 2 ++ builder/builder-context.c | 5 +++++ builder/builder-main.c | 2 +- builder/builder-options.c | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/builder/builder-cache.c b/builder/builder-cache.c index 5a748d86..f7d32748 100644 --- a/builder/builder-cache.c +++ b/builder/builder-cache.c @@ -75,9 +75,11 @@ builder_cache_finalize (GObject *object) g_clear_object (&self->cache_dir); g_clear_object (&self->app_dir); + g_clear_object (&self->repo); g_checksum_free (self->checksum); g_free (self->branch); g_free (self->last_parent); + g_free (self->stage); if (self->unused_stages) g_hash_table_unref (self->unused_stages); diff --git a/builder/builder-context.c b/builder/builder-context.c index afc5bc94..397b7805 100644 --- a/builder/builder-context.c +++ b/builder/builder-context.c @@ -75,6 +75,11 @@ builder_context_finalize (GObject *object) { BuilderContext *self = (BuilderContext *) object; + g_clear_object (&self->state_dir); + g_clear_object (&self->download_dir); + g_clear_object (&self->build_dir); + g_clear_object (&self->cache_dir); + g_clear_object (&self->ccache_dir); g_clear_object (&self->app_dir); g_clear_object (&self->base_dir); g_clear_object (&self->soup_session); diff --git a/builder/builder-main.c b/builder/builder-main.c index a43fd46a..3000311f 100644 --- a/builder/builder-main.c +++ b/builder/builder-main.c @@ -170,7 +170,7 @@ main (int argc, g_autoptr(GError) error = NULL; g_autoptr(BuilderManifest) manifest = NULL; - GOptionContext *context; + g_autoptr(GOptionContext) context = NULL; const char *app_dir_path, *manifest_path; g_autofree gchar *json = NULL; g_autoptr(BuilderContext) build_context = NULL; diff --git a/builder/builder-options.c b/builder/builder-options.c index b867b46b..05c233a3 100644 --- a/builder/builder-options.c +++ b/builder/builder-options.c @@ -83,6 +83,7 @@ builder_options_finalize (GObject *object) g_strfreev (self->env); g_strfreev (self->build_args); g_strfreev (self->config_opts); + g_hash_table_destroy (self->arch); G_OBJECT_CLASS (builder_options_parent_class)->finalize (object); }