diff options
author | Alexander Larsson <alexl@redhat.com> | 2012-11-09 10:06:55 +0100 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2012-11-09 10:16:18 +0100 |
commit | 1c4158a6491e219f6b50c92c069bf432bda9f13c (patch) | |
tree | f446e52d5a8725dae3ad299b83d2945f0485901c /gtk/gtkcssprovider.c | |
parent | 55d65571f37d3f6428e418c4e8bc4171c24a9741 (diff) | |
download | gtk+-1c4158a6491e219f6b50c92c069bf432bda9f13c.tar.gz |
gtk_css_style_provider_lookup: minor loop optimiziation
This is a minor performance improvement but this loop
is run a lot so it actually matters in large state
changes.
Diffstat (limited to 'gtk/gtkcssprovider.c')
-rw-r--r-- | gtk/gtkcssprovider.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c index fbf9970950..8be9d23d9f 100644 --- a/gtk/gtkcssprovider.c +++ b/gtk/gtkcssprovider.c @@ -1568,18 +1568,19 @@ gtk_css_style_provider_lookup (GtkStyleProviderPrivate *provider, { GtkCssProvider *css_provider; GtkCssProviderPrivate *priv; - int i; + GtkCssRuleset *ruleset; guint j; css_provider = GTK_CSS_PROVIDER (provider); priv = css_provider->priv; - for (i = priv->rulesets->len - 1; i >= 0; i--) - { - GtkCssRuleset *ruleset; - - ruleset = &g_array_index (priv->rulesets, GtkCssRuleset, i); + if (priv->rulesets->len == 0) + return; + for (ruleset = &g_array_index (priv->rulesets, GtkCssRuleset, priv->rulesets->len - 1); + ruleset >= &g_array_index (priv->rulesets, GtkCssRuleset, 0); + ruleset--) + { if (ruleset->styles == NULL) continue; |