Don't leak basename.

2008-01-22  Alexander Larsson  <alexl@redhat.com>

        * gdesktopappinfo.c:
	(g_desktop_app_info_new):
	Don't leak basename.


svn path=/trunk/; revision=6356
This commit is contained in:
Alexander Larsson 2008-01-22 16:16:32 +00:00 committed by Alexander Larsson
parent aa88b00475
commit 61014f7e13
2 changed files with 14 additions and 9 deletions

View File

@ -1,3 +1,9 @@
2008-01-22 Alexander Larsson <alexl@redhat.com>
* gdesktopappinfo.c:
(g_desktop_app_info_new):
Don't leak basename.
2008-01-22 Alexander Larsson <alexl@redhat.com> 2008-01-22 Alexander Larsson <alexl@redhat.com>
* gdesktopappinfo.c: * gdesktopappinfo.c:

View File

@ -292,13 +292,15 @@ g_desktop_app_info_new (const char *desktop_id)
{ {
GDesktopAppInfo *appinfo; GDesktopAppInfo *appinfo;
const char * const *dirs; const char * const *dirs;
char *basename;
int i; int i;
dirs = get_applications_search_path (); dirs = get_applications_search_path ();
basename = g_strdup (desktop_id);
for (i = 0; dirs[i] != NULL; i++) for (i = 0; dirs[i] != NULL; i++)
{ {
char *basename;
char *filename; char *filename;
char *p; char *p;
@ -306,11 +308,8 @@ g_desktop_app_info_new (const char *desktop_id)
appinfo = g_desktop_app_info_new_from_filename (filename); appinfo = g_desktop_app_info_new_from_filename (filename);
g_free (filename); g_free (filename);
if (appinfo != NULL) if (appinfo != NULL)
{ goto found;
goto found;
}
basename = g_strdup (desktop_id);
p = basename; p = basename;
while ((p = strchr (p, '-')) != NULL) 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); appinfo = g_desktop_app_info_new_from_filename (filename);
g_free (filename); g_free (filename);
if (appinfo != NULL) if (appinfo != NULL)
{ goto found;
g_free (basename);
goto found;
}
*p = '-'; *p = '-';
p++; p++;
} }
} }
g_free (basename);
return NULL; return NULL;
found: found:
g_free (basename);
appinfo->desktop_id = g_strdup (desktop_id); appinfo->desktop_id = g_strdup (desktop_id);
if (g_desktop_app_info_get_is_hidden (appinfo)) if (g_desktop_app_info_get_is_hidden (appinfo))