[gtk+/wip/css-optimize: 5/6] css: Make gtk_css_style_provider_get_change use the new rules tree



commit 3b48e562dde532e8c8be4a67f4e62b5538b1dca1
Author: Alexander Larsson <alexl redhat com>
Date:   Fri Nov 23 16:09:22 2012 +0100

    css: Make gtk_css_style_provider_get_change use the new rules tree

 gtk/gtkcssprovider.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index cdd31a4..0477aac 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -1772,15 +1772,21 @@ gtk_css_style_provider_get_change (GtkStyleProviderPrivate *provider,
   GtkCssProviderPrivate *priv;
   GtkCssChange change = 0;
   int i;
+  guint *refs;
+  guint num_refs;
 
   css_provider = GTK_CSS_PROVIDER (provider);
   priv = css_provider->priv;
 
-  for (i = priv->rulesets->len - 1; i >= 0; i--)
+  refs = find_possible_rules (priv->rulesets_tree, matcher, &num_refs);
+  if (num_refs == 0)
+    return change;
+
+  for (i = num_refs - 1; i >= 0; i--)
     {
       GtkCssRuleset *ruleset;
 
-      ruleset = &g_array_index (priv->rulesets, GtkCssRuleset, i);
+      ruleset = &g_array_index (priv->rulesets, GtkCssRuleset, refs[i]);
 
       if (ruleset->styles == NULL)
         continue;
@@ -1791,6 +1797,8 @@ gtk_css_style_provider_get_change (GtkStyleProviderPrivate *provider,
       change |= gtk_css_ruleset_get_change (ruleset);
     }
 
+  g_free (refs);
+
   return change;
 }
 



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