From: Alexander Larsson Date: Tue, 22 Jan 2008 16:16:32 +0000 (+0000) Subject: Don't leak basename. X-Git-Tag: GLIB_2_15_4~45 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=61014f7e13c9546d94424599b5c343e4a55c5b01;p=platform%2Fupstream%2Fglib.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 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))