diff options
author | Michael Terry <michael.terry@canonical.com> | 2012-04-25 13:33:08 -0400 |
---|---|---|
committer | Michael Terry <michael.terry@canonical.com> | 2012-04-25 13:33:08 -0400 |
commit | 8e64ffe2ecf114cd0a465224dc294cb6edfc117a (patch) | |
tree | 93e930f80728d5c8f13c3ae18515fcb41592fd3a | |
parent | 2c4404e30d4fdbfb222556ce1e918e349f75ed99 (diff) | |
parent | 682cc074e975cb82a5b864109c78fdb8650c93ea (diff) | |
download | lightdm-8e64ffe2ecf114cd0a465224dc294cb6edfc117a.tar.gz |
merge some memory leak fixes
-rw-r--r-- | liblightdm-gobject/session.c | 13 | ||||
-rw-r--r-- | liblightdm-gobject/user.c | 3 |
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); |