summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Terry <michael.terry@canonical.com>2012-04-25 13:33:08 -0400
committerMichael Terry <michael.terry@canonical.com>2012-04-25 13:33:08 -0400
commit8e64ffe2ecf114cd0a465224dc294cb6edfc117a (patch)
tree93e930f80728d5c8f13c3ae18515fcb41592fd3a
parent2c4404e30d4fdbfb222556ce1e918e349f75ed99 (diff)
parent682cc074e975cb82a5b864109c78fdb8650c93ea (diff)
downloadlightdm-8e64ffe2ecf114cd0a465224dc294cb6edfc117a.tar.gz
merge some memory leak fixes
-rw-r--r--liblightdm-gobject/session.c13
-rw-r--r--liblightdm-gobject/user.c3
2 files changed, 15 insertions, 1 deletions
diff --git a/liblightdm-gobject/session.c b/liblightdm-gobject/session.c
index 3ebb8ce4..ffd55cae 100644
--- a/liblightdm-gobject/session.c
+++ b/liblightdm-gobject/session.c
@@ -78,6 +78,7 @@ load_session (GKeyFile *key_file, const gchar *key)
if (!full_path)
{
+ g_free (name);
g_free (domain);
return NULL;
}
@@ -266,6 +267,17 @@ lightdm_session_get_property (GObject *object,
}
static void
+lightdm_session_finalize (GObject *object)
+{
+ LightDMSession *self = LIGHTDM_SESSION (object);
+ LightDMSessionPrivate *priv = GET_PRIVATE (self);
+
+ g_free (priv->key);
+ g_free (priv->name);
+ g_free (priv->comment);
+}
+
+static void
lightdm_session_class_init (LightDMSessionClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -274,6 +286,7 @@ lightdm_session_class_init (LightDMSessionClass *klass)
object_class->set_property = lightdm_session_set_property;
object_class->get_property = lightdm_session_get_property;
+ object_class->finalize = lightdm_session_finalize;
g_object_class_install_property (object_class,
PROP_KEY,
diff --git a/liblightdm-gobject/user.c b/liblightdm-gobject/user.c
index f531a560..a21b69f8 100644
--- a/liblightdm-gobject/user.c
+++ b/liblightdm-gobject/user.c
@@ -1120,7 +1120,8 @@ load_dmrc (LightDMUser *user)
gchar *path;
//gboolean have_dmrc;
- priv->dmrc_file = g_key_file_new ();
+ if (!priv->dmrc_file)
+ priv->dmrc_file = g_key_file_new ();
/* Load from the user directory */
path = g_build_filename (priv->home_directory, ".dmrc", NULL);