From: Alexander Larsson Date: Tue, 22 Jan 2008 16:16:32 +0000 (+0000) Subject: Don't leak basename. X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=61014f7e13c9546d94424599b5c343e4a55c5b01;p=dana%2Fcg-glib.git 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 --- diff --git a/gio/ChangeLog b/gio/ChangeLog index a6b2345f..5546336c 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,9 @@ +2008-01-22 Alexander Larsson + + * gdesktopappinfo.c: + (g_desktop_app_info_new): + Don't leak basename. + 2008-01-22 Alexander Larsson * gdesktopappinfo.c: diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index e48f7d8b..d20f366b 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))