Don't leak basename.
authorAlexander Larsson <alexl@redhat.com>
Tue, 22 Jan 2008 16:16:32 +0000 (16:16 +0000)
committerAlexander Larsson <alexl@src.gnome.org>
Tue, 22 Jan 2008 16:16:32 +0000 (16:16 +0000)
2008-01-22  Alexander Larsson  <alexl@redhat.com>

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

svn path=/trunk/; revision=6356

gio/ChangeLog
gio/gdesktopappinfo.c

index a6b2345..5546336 100644 (file)
@@ -1,6 +1,12 @@
 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>
+
+        * gdesktopappinfo.c:
         (g_desktop_app_info_new_from_filename):
        Don't leak GKeyFile
 
index e48f7d8..d20f366 100644 (file)
@@ -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))