[gtk/wip/baedert/for-master: 76/146] cssprovider: Don't lookup on empty css providers
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/baedert/for-master: 76/146] cssprovider: Don't lookup on empty css providers
- Date: Mon, 9 Sep 2019 14:38:06 +0000 (UTC)
commit 187a191e13b63c141cce90d491d1148181dd0dbe
Author: Timm Bäder <mail baedert org>
Date: Sat Aug 24 10:35:53 2019 +0200
cssprovider: Don't lookup on empty css providers
This should not have a huge performance impact, but debugging is easier
if we don't lookup in empty css providers.
gtk/gtkcssprovider.c | 3 +++
gtk/gtkcssselector.c | 6 ++++++
gtk/gtkcssselectorprivate.h | 2 ++
3 files changed, 11 insertions(+)
---
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index 32a098dc44..15279c039e 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -527,6 +527,9 @@ gtk_css_style_provider_lookup (GtkStyleProvider *provider,
int i;
GPtrArray *tree_rules;
+ if (_gtk_css_selector_tree_is_empty (priv->tree))
+ return;
+
tree_rules = _gtk_css_selector_tree_match_all (priv->tree, matcher);
if (tree_rules)
{
diff --git a/gtk/gtkcssselector.c b/gtk/gtkcssselector.c
index 3a1b95dbf7..89ec18194f 100644
--- a/gtk/gtkcssselector.c
+++ b/gtk/gtkcssselector.c
@@ -1885,6 +1885,12 @@ gtk_css_selector_tree_get_change (const GtkCssSelectorTree *tree,
return change;
}
+gboolean
+_gtk_css_selector_tree_is_empty (const GtkCssSelectorTree *tree)
+{
+ return tree == NULL;
+}
+
GtkCssChange
_gtk_css_selector_tree_get_change_all (const GtkCssSelectorTree *tree,
const GtkCssMatcher *matcher)
diff --git a/gtk/gtkcssselectorprivate.h b/gtk/gtkcssselectorprivate.h
index 64eb13d709..6f35917c6e 100644
--- a/gtk/gtkcssselectorprivate.h
+++ b/gtk/gtkcssselectorprivate.h
@@ -47,6 +47,8 @@ GtkCssChange _gtk_css_selector_tree_get_change_all (const GtkCssSelectorTree *
const GtkCssMatcher *matcher);
void _gtk_css_selector_tree_match_print (const GtkCssSelectorTree *tree,
GString *str);
+gboolean _gtk_css_selector_tree_is_empty (const GtkCssSelectorTree *tree) G_GNUC_CONST;
+
GtkCssSelectorTreeBuilder *_gtk_css_selector_tree_builder_new (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]