[gtk/prop-list: 3/3] gtk-demo: Plug memory leaks in the settings demo



commit d080a2c4827dddbe6f9098d17474db0e5b4c4a5b
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Dec 25 01:07:02 2019 -0500

    gtk-demo: Plug memory leaks in the settings demo

 demos/gtk-demo/listview_settings.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
---
diff --git a/demos/gtk-demo/listview_settings.c b/demos/gtk-demo/listview_settings.c
index 7d4a65d280..ab39791b88 100644
--- a/demos/gtk-demo/listview_settings.c
+++ b/demos/gtk-demo/listview_settings.c
@@ -71,11 +71,23 @@ settings_key_get_property (GObject    *object,
     }
 }
 
+static void
+settings_key_finalize (GObject *object)
+{
+  SettingsKey *self = SETTINGS_KEY (object);
+
+  g_object_unref (self->settings);
+  g_settings_schema_key_unref (self->key);
+
+  G_OBJECT_CLASS (settings_key_parent_class)->finalize (object);
+}
+
 static void
 settings_key_class_init (SettingsKeyClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
+  gobject_class->finalize = settings_key_finalize;
   gobject_class->get_property = settings_key_get_property;
 
   properties[PROP_DESCRIPTION] =
@@ -161,6 +173,7 @@ transform_settings_to_keys (GBinding     *binding,
 
   sort_model = gtk_sort_list_model_new (G_LIST_MODEL (store),
                                         gtk_column_view_get_sorter (GTK_COLUMN_VIEW (data)));
+  g_object_unref (store);
   expression = gtk_property_expression_new (SETTINGS_TYPE_KEY, NULL, "name");
   filter = gtk_string_filter_new ();
   gtk_string_filter_set_expression (GTK_STRING_FILTER (filter), expression);
@@ -220,6 +233,8 @@ create_settings_model (gpointer item,
       g_object_unref (child);
     }
 
+  g_strfreev (schemas);
+
   return G_LIST_MODEL (result);
 }
 


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