From aa88b00475b8c2fa4b13ee21b73962d6ff5597ce Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Tue, 22 Jan 2008 14:15:51 +0000 Subject: [PATCH] Don't leak GKeyFile 2008-01-22 Alexander Larsson * gdesktopappinfo.c: (g_desktop_app_info_new_from_filename): Don't leak GKeyFile svn path=/trunk/; revision=6355 --- gio/ChangeLog | 6 ++++++ gio/gdesktopappinfo.c | 10 +++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gio/ChangeLog b/gio/ChangeLog index 04ae8fb1..a6b2345f 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,9 @@ +2008-01-22 Alexander Larsson + + * gdesktopappinfo.c: + (g_desktop_app_info_new_from_filename): + Don't leak GKeyFile + 2008-01-22 Alexander Larsson * glocalfileinfo.c (get_thumbnail_attributes): diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index 5ffb0b79..e48f7d8b 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -186,12 +186,16 @@ g_desktop_app_info_new_from_filename (const char *filename) filename, G_KEY_FILE_NONE, NULL)) - return NULL; + { + g_key_file_free (key_file); + return NULL; + } start_group = g_key_file_get_start_group (key_file); if (start_group == NULL || strcmp (start_group, G_KEY_FILE_DESKTOP_GROUP) != 0) { g_free (start_group); + g_key_file_free (key_file); return NULL; } g_free (start_group); @@ -203,6 +207,7 @@ g_desktop_app_info_new_from_filename (const char *filename) if (type == NULL || strcmp (type, G_KEY_FILE_DESKTOP_TYPE_APPLICATION) != 0) { g_free (type); + g_key_file_free (key_file); return NULL; } g_free (type); @@ -218,6 +223,7 @@ g_desktop_app_info_new_from_filename (const char *filename) if (t == NULL) { g_free (try_exec); + g_key_file_free (key_file); return NULL; } g_free (t); @@ -239,6 +245,8 @@ g_desktop_app_info_new_from_filename (const char *filename) info->startup_notify = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY, NULL) != FALSE; info->hidden = g_key_file_get_boolean (key_file, G_KEY_FILE_DESKTOP_GROUP, G_KEY_FILE_DESKTOP_KEY_HIDDEN, NULL) != FALSE; + g_key_file_free (key_file); + info->icon = NULL; if (info->icon_name) { -- 2.34.1