[gnome-shell] shell-app-usage: Fix several problems in xml parsing



commit 716d7bb93e0e8b279a79b7e742de0728ccba8ef2
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Nov 29 23:39:11 2012 -0500

    shell-app-usage: Fix several problems in xml parsing
    
    Coverity rightly complained about the context < 0 comparison.
    In addition, context was shadowing the parameter of the same
    name, and the loops over the attributes were unnecessarily
    running all the way.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=689325

 src/shell-app-usage.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)
---
diff --git a/src/shell-app-usage.c b/src/shell-app-usage.c
index 0899565..bab217c 100644
--- a/src/shell-app-usage.c
+++ b/src/shell-app-usage.c
@@ -785,16 +785,19 @@ shell_app_usage_start_element_handler  (GMarkupParseContext *context,
     }
   else if (strcmp (element_name, "context") == 0)
     {
-      char *context = NULL;
+      char *id = NULL;
       const char **attribute;
       const char **value;
 
       for (attribute = attribute_names, value = attribute_values; *attribute; attribute++, value++)
         {
           if (strcmp (*attribute, "id") == 0)
-            context = g_strdup (*value);
+            {
+              id = g_strdup (*value);
+              break;
+            }
         }
-      if (context < 0)
+      if (!id)
         {
           g_set_error (error,
                        G_MARKUP_ERROR,
@@ -803,7 +806,7 @@ shell_app_usage_start_element_handler  (GMarkupParseContext *context,
                        element_name);
           return;
         }
-      data->context = context;
+      data->context = id;
     }
   else if (strcmp (element_name, "application") == 0)
     {
@@ -816,7 +819,10 @@ shell_app_usage_start_element_handler  (GMarkupParseContext *context,
       for (attribute = attribute_names, value = attribute_values; *attribute; attribute++, value++)
         {
           if (strcmp (*attribute, "id") == 0)
-            appid = g_strdup (*value);
+            {
+              appid = g_strdup (*value);
+              break;
+            }
         }
 
       if (!appid)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]