[gtk+/parser] styleproperties: Speed up style_property_lookup()



commit 1010ab3211208f57efe43ea548d6b7fb9ba66dff
Author: Benjamin Otte <otte redhat com>
Date:   Mon May 16 22:35:21 2011 +0200

    styleproperties: Speed up style_property_lookup()
    
    Use the already existing bsearch version instead of iterating the array
    manually.

 gtk/gtkstyleproperties.c |   23 ++++++++---------------
 1 files changed, 8 insertions(+), 15 deletions(-)
---
diff --git a/gtk/gtkstyleproperties.c b/gtk/gtkstyleproperties.c
index 2bb8f5a..b1adea1 100644
--- a/gtk/gtkstyleproperties.c
+++ b/gtk/gtkstyleproperties.c
@@ -490,7 +490,6 @@ gtk_style_properties_lookup_property (const gchar             *property_name,
   GtkStylePropertiesClass *klass;
   gboolean found = FALSE;
   GQuark quark;
-  gint i;
 
   g_return_val_if_fail (property_name != NULL, FALSE);
 
@@ -503,23 +502,17 @@ gtk_style_properties_lookup_property (const gchar             *property_name,
       return FALSE;
     }
 
-  for (i = 0; i < properties->len; i++)
-    {
-      node = &g_array_index (properties, PropertyNode, i);
+  node = property_node_lookup (quark);
 
-      if (node->property_quark == quark)
-        {
-          if (pspec)
-            *pspec = node->pspec;
+  if (node)
+    {
+      if (pspec)
+        *pspec = node->pspec;
 
-          if (parse_func)
-            *parse_func = node->parse_func;
+      if (parse_func)
+        *parse_func = node->parse_func;
 
-          found = TRUE;
-          break;
-        }
-      else if (node->property_quark > quark)
-        break;
+      found = TRUE;
     }
 
   g_type_class_unref (klass);



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