summaryrefslogtreecommitdiff
path: root/gtk/gtkcssprovider.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2012-11-09 10:06:55 +0100
committerAlexander Larsson <alexl@redhat.com>2012-11-09 10:16:18 +0100
commit1c4158a6491e219f6b50c92c069bf432bda9f13c (patch)
treef446e52d5a8725dae3ad299b83d2945f0485901c /gtk/gtkcssprovider.c
parent55d65571f37d3f6428e418c4e8bc4171c24a9741 (diff)
downloadgtk+-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.c13
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;