From 61014f7e13c9546d94424599b5c343e4a55c5b01 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Tue, 22 Jan 2008 16:16:32 +0000 Subject: [PATCH] Don't leak basename. 2008-01-22 Alexander Larsson * gdesktopappinfo.c: (g_desktop_app_info_new): Don't leak basename. svn path=/trunk/; revision=6356 --- gio/ChangeLog | 6 ++++++ gio/gdesktopappinfo.c | 17 ++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/gio/ChangeLog b/gio/ChangeLog index a6b2345..5546336 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,6 +1,12 @@ 2008-01-22 Alexander Larsson * gdesktopappinfo.c: + (g_desktop_app_info_new): + Don't leak basename. + +2008-01-22 Alexander Larsson + + * gdesktopappinfo.c: (g_desktop_app_info_new_from_filename): Don't leak GKeyFile diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index e48f7d8..d20f366 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -292,13 +292,15 @@ g_desktop_app_info_new (const char *desktop_id) { GDesktopAppInfo *appinfo; const char * const *dirs; + char *basename; int i; dirs = get_applications_search_path (); + basename = g_strdup (desktop_id); + for (i = 0; dirs[i] != NULL; i++) { - char *basename; char *filename; char *p; @@ -306,11 +308,8 @@ g_desktop_app_info_new (const char *desktop_id) appinfo = g_desktop_app_info_new_from_filename (filename); g_free (filename); if (appinfo != NULL) - { - goto found; - } + goto found; - basename = g_strdup (desktop_id); p = basename; while ((p = strchr (p, '-')) != NULL) { @@ -320,18 +319,18 @@ g_desktop_app_info_new (const char *desktop_id) appinfo = g_desktop_app_info_new_from_filename (filename); g_free (filename); if (appinfo != NULL) - { - g_free (basename); - goto found; - } + goto found; *p = '-'; p++; } } + g_free (basename); return NULL; found: + g_free (basename); + appinfo->desktop_id = g_strdup (desktop_id); if (g_desktop_app_info_get_is_hidden (appinfo)) -- 2.7.4