summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2015-02-14 01:59:17 +0100
committerBenjamin Otte <otte@redhat.com>2015-03-18 15:23:31 +0100
commite95985da26c8fed22b9e05aa3ff9b4a5a53e3ad4 (patch)
treef97eb7efbfeefd44da94d0831621abed8f29bb55
parent6f9969f4fe112006a9316575d3beeea4a4ed6c60 (diff)
downloadgtk+-e95985da26c8fed22b9e05aa3ff9b4a5a53e3ad4.tar.gz
cssstyle: Remove unused optimization
After measuring it, I realized the optimization never triggers for Adwaita and rarely ever triggers for simple themes. So it is not useful to keep it around.
-rw-r--r--gtk/gtkcssnode.c33
-rw-r--r--gtk/gtkcssnodeprivate.h3
-rw-r--r--gtk/gtkcssstaticstyle.c114
-rw-r--r--gtk/gtkcssstaticstyleprivate.h10
-rw-r--r--gtk/gtkcsswidgetnode.c9
5 files changed, 2 insertions, 167 deletions
diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c
index e59bce84b1..b9b6bbcb78 100644
--- a/gtk/gtkcssnode.c
+++ b/gtk/gtkcssnode.c
@@ -170,39 +170,6 @@ store_in_global_parent_cache (GtkCssNode *node,
}
GtkCssStyle *
-gtk_css_node_update_style (GtkCssNode *cssnode,
- GtkCssStyle *style,
- const GtkBitmask *parent_changes)
-{
- const GtkCssNodeDeclaration *decl;
- GtkCssMatcher matcher;
- GtkCssStyle *parent;
- GtkCssStyle *result;
-
- parent = cssnode->parent ? cssnode->parent->style : NULL;
- decl = gtk_css_node_get_declaration (cssnode);
-
- result = lookup_in_global_parent_cache (cssnode, parent, decl);
- if (result)
- return g_object_ref (result);
-
- if (!gtk_css_node_init_matcher (cssnode, &matcher))
- {
- g_assert_not_reached ();
- }
-
- result = gtk_css_static_style_new_update (GTK_CSS_STATIC_STYLE (style),
- parent_changes,
- gtk_css_node_get_style_provider (cssnode),
- &matcher,
- parent);
-
- store_in_global_parent_cache (cssnode, parent, decl, style);
-
- return result;
-}
-
-GtkCssStyle *
gtk_css_node_create_style (GtkCssNode *cssnode)
{
const GtkCssNodeDeclaration *decl;
diff --git a/gtk/gtkcssnodeprivate.h b/gtk/gtkcssnodeprivate.h
index ea082ba9ad..c9bbe5709e 100644
--- a/gtk/gtkcssnodeprivate.h
+++ b/gtk/gtkcssnodeprivate.h
@@ -130,9 +130,6 @@ GtkCssStyle * gtk_css_node_get_style (GtkCssNode *
void gtk_css_node_set_style (GtkCssNode *cssnode,
GtkCssStyle *style);
GtkCssStyle * gtk_css_node_create_style (GtkCssNode *cssnode);
-GtkCssStyle * gtk_css_node_update_style (GtkCssNode *cssnode,
- GtkCssStyle *style,
- const GtkBitmask *parent_changes);
void gtk_css_node_invalidate (GtkCssNode *cssnode,
GtkCssChange change);
diff --git a/gtk/gtkcssstaticstyle.c b/gtk/gtkcssstaticstyle.c
index 9b0e3d457f..e14f59e0dd 100644
--- a/gtk/gtkcssstaticstyle.c
+++ b/gtk/gtkcssstaticstyle.c
@@ -66,28 +66,6 @@ gtk_css_static_style_get_section (GtkCssStyle *style,
return g_ptr_array_index (sstyle->sections, id);
}
-/* Compute the bitmask of potentially changed properties if the parent has changed
- * the passed in ones.
- * This is for example needed when changes in the "color" property will affect
- * all properties using "currentColor" as a color.
- */
-static GtkBitmask *
-gtk_css_static_style_compute_dependencies (GtkCssStaticStyle *style,
- const GtkBitmask *parent_changes)
-{
- GtkCssStaticStyle *sstyle = GTK_CSS_STATIC_STYLE (style);
- GtkBitmask *changes;
-
- changes = _gtk_bitmask_copy (parent_changes);
- changes = _gtk_bitmask_intersect (changes, sstyle->depends_on_parent);
- if (_gtk_bitmask_get (changes, GTK_CSS_PROPERTY_COLOR))
- changes = _gtk_bitmask_union (changes, sstyle->depends_on_color);
- if (_gtk_bitmask_get (changes, GTK_CSS_PROPERTY_FONT_SIZE))
- changes = _gtk_bitmask_union (changes, sstyle->depends_on_font_size);
-
- return changes;
-}
-
static void
gtk_css_static_style_dispose (GObject *object)
{
@@ -108,26 +86,12 @@ gtk_css_static_style_dispose (GObject *object)
}
static void
-gtk_css_static_style_finalize (GObject *object)
-{
- GtkCssStaticStyle *style = GTK_CSS_STATIC_STYLE (object);
-
- _gtk_bitmask_free (style->depends_on_parent);
- _gtk_bitmask_free (style->equals_parent);
- _gtk_bitmask_free (style->depends_on_color);
- _gtk_bitmask_free (style->depends_on_font_size);
-
- G_OBJECT_CLASS (gtk_css_static_style_parent_class)->finalize (object);
-}
-
-static void
gtk_css_static_style_class_init (GtkCssStaticStyleClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkCssStyleClass *style_class = GTK_CSS_STYLE_CLASS (klass);
object_class->dispose = gtk_css_static_style_dispose;
- object_class->finalize = gtk_css_static_style_finalize;
style_class->get_value = gtk_css_static_style_get_value;
style_class->get_section = gtk_css_static_style_get_section;
@@ -136,10 +100,6 @@ gtk_css_static_style_class_init (GtkCssStaticStyleClass *klass)
static void
gtk_css_static_style_init (GtkCssStaticStyle *style)
{
- style->depends_on_parent = _gtk_bitmask_new ();
- style->equals_parent = _gtk_bitmask_new ();
- style->depends_on_color = _gtk_bitmask_new ();
- style->depends_on_font_size = _gtk_bitmask_new ();
}
static void
@@ -235,71 +195,6 @@ gtk_css_static_style_new_compute (GtkStyleProviderPrivate *provider,
return GTK_CSS_STYLE (result);
}
-GtkCssStyle *
-gtk_css_static_style_new_update (GtkCssStaticStyle *style,
- const GtkBitmask *parent_changes,
- GtkStyleProviderPrivate *provider,
- const GtkCssMatcher *matcher,
- GtkCssStyle *parent)
-{
- GtkCssStaticStyle *result;
- GtkCssLookup *lookup;
- GtkBitmask *changes;
- guint i;
-
- gtk_internal_return_val_if_fail (GTK_IS_CSS_STATIC_STYLE (style), NULL);
- gtk_internal_return_val_if_fail (parent_changes != NULL, NULL);
- gtk_internal_return_val_if_fail (GTK_IS_STYLE_PROVIDER_PRIVATE (provider), NULL);
- gtk_internal_return_val_if_fail (matcher != NULL, NULL);
-
- changes = gtk_css_static_style_compute_dependencies (style, parent_changes);
- if (_gtk_bitmask_is_empty (changes))
- {
- _gtk_bitmask_free (changes);
- return g_object_ref (style);
- }
-
- result = g_object_new (GTK_TYPE_CSS_STATIC_STYLE, NULL);
-
- result->change = style->change;
- result->depends_on_parent = _gtk_bitmask_subtract (_gtk_bitmask_union (result->depends_on_parent, style->depends_on_parent),
- changes);
- result->equals_parent = _gtk_bitmask_subtract (_gtk_bitmask_union (result->equals_parent, style->equals_parent),
- changes);
- result->depends_on_color = _gtk_bitmask_subtract (_gtk_bitmask_union (result->depends_on_color, style->depends_on_color),
- changes);
- result->depends_on_font_size = _gtk_bitmask_subtract (_gtk_bitmask_union (result->depends_on_font_size, style->depends_on_font_size),
- changes);
-
- for (i = 0; i < style->values->len; i++)
- {
- if (_gtk_bitmask_get (changes, i))
- continue;
-
- gtk_css_static_style_set_value (result,
- i,
- gtk_css_static_style_get_value (GTK_CSS_STYLE (style), i),
- gtk_css_static_style_get_section (GTK_CSS_STYLE (style), i));
- }
-
- lookup = _gtk_css_lookup_new (changes);
-
- _gtk_style_provider_private_lookup (provider,
- matcher,
- lookup,
- NULL);
-
- _gtk_css_lookup_resolve (lookup,
- provider,
- result,
- parent);
-
- _gtk_css_lookup_free (lookup);
- _gtk_bitmask_free (changes);
-
- return GTK_CSS_STYLE (result);
-}
-
void
gtk_css_static_style_compute_value (GtkCssStaticStyle *style,
GtkStyleProviderPrivate *provider,
@@ -336,15 +231,6 @@ gtk_css_static_style_compute_value (GtkCssStaticStyle *style,
gtk_css_static_style_set_value (style, id, value, section);
- if (dependencies & (GTK_CSS_DEPENDS_ON_PARENT | GTK_CSS_EQUALS_PARENT))
- style->depends_on_parent = _gtk_bitmask_set (style->depends_on_parent, id, TRUE);
- if (dependencies & (GTK_CSS_EQUALS_PARENT))
- style->equals_parent = _gtk_bitmask_set (style->equals_parent, id, TRUE);
- if (dependencies & (GTK_CSS_DEPENDS_ON_COLOR))
- style->depends_on_color = _gtk_bitmask_set (style->depends_on_color, id, TRUE);
- if (dependencies & (GTK_CSS_DEPENDS_ON_FONT_SIZE))
- style->depends_on_font_size = _gtk_bitmask_set (style->depends_on_font_size, id, TRUE);
-
_gtk_css_value_unref (value);
_gtk_css_value_unref (specified);
}
diff --git a/gtk/gtkcssstaticstyleprivate.h b/gtk/gtkcssstaticstyleprivate.h
index 6abc20541f..d23b74e18a 100644
--- a/gtk/gtkcssstaticstyleprivate.h
+++ b/gtk/gtkcssstaticstyleprivate.h
@@ -42,11 +42,6 @@ struct _GtkCssStaticStyle
GPtrArray *values; /* the values */
GPtrArray *sections; /* sections the values are defined in */
- GtkBitmask *depends_on_parent; /* values that depend on parent values */
- GtkBitmask *equals_parent; /* values that equal their parent values */
- GtkBitmask *depends_on_color; /* values that depend on the color property */
- GtkBitmask *depends_on_font_size; /* values that depend on the font-size property */
-
GtkCssChange change; /* change as returned by value lookup */
};
@@ -61,11 +56,6 @@ GtkCssStyle * gtk_css_static_style_get_default (void);
GtkCssStyle * gtk_css_static_style_new_compute (GtkStyleProviderPrivate *provider,
const GtkCssMatcher *matcher,
GtkCssStyle *parent);
-GtkCssStyle * gtk_css_static_style_new_update (GtkCssStaticStyle *style,
- const GtkBitmask *parent_changes,
- GtkStyleProviderPrivate *provider,
- const GtkCssMatcher *matcher,
- GtkCssStyle *parent);
void gtk_css_static_style_compute_value (GtkCssStaticStyle *style,
GtkStyleProviderPrivate*provider,
diff --git a/gtk/gtkcsswidgetnode.c b/gtk/gtkcsswidgetnode.c
index eb640ea6ac..9a662df9b3 100644
--- a/gtk/gtkcsswidgetnode.c
+++ b/gtk/gtkcsswidgetnode.c
@@ -90,16 +90,11 @@ validate_static_style (GtkCssNode *node,
GtkCssChange change,
const GtkBitmask *parent_changes)
{
- if (gtk_css_static_style_needs_revalidate (GTK_CSS_STATIC_STYLE (style), change))
+ if (gtk_css_static_style_needs_revalidate (GTK_CSS_STATIC_STYLE (style), change) ||
+ !_gtk_bitmask_is_empty (parent_changes))
{
return gtk_css_node_create_style (node);
}
- else if (!_gtk_bitmask_is_empty (parent_changes))
- {
- return gtk_css_node_update_style (node,
- style,
- parent_changes);
- }
else
{
return g_object_ref (style);