summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2016-04-21 22:28:14 +0200
committerMatthias Clasen <mclasen@redhat.com>2016-05-05 15:03:58 -0400
commit758e10ad41a300e6343f4cbc2c9da39f1373f7aa (patch)
tree9c1b66957a6e2b4e2c8bb81fec0fcd42cb9ca52e
parent5d5b7c9f7f0242d7d47549ee7d97fd1c5c22bce9 (diff)
downloadgtk+-758e10ad41a300e6343f4cbc2c9da39f1373f7aa.tar.gz
cssbgsizevalue: Avoid allocating new value if not needed
-rw-r--r--gtk/gtkcssbgsizevalue.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gtk/gtkcssbgsizevalue.c b/gtk/gtkcssbgsizevalue.c
index b5da0677d0..3e25ded758 100644
--- a/gtk/gtkcssbgsizevalue.c
+++ b/gtk/gtkcssbgsizevalue.c
@@ -60,6 +60,16 @@ gtk_css_value_bg_size_compute (GtkCssValue *value,
if (value->y)
y = _gtk_css_value_compute (value->y, property_id, provider, style, parent_style);
+ if (x == value->x && y == value->y)
+ {
+ if (x)
+ _gtk_css_value_unref (x);
+ if (y)
+ _gtk_css_value_unref (y);
+
+ return _gtk_css_value_ref (value);
+ }
+
return _gtk_css_bg_size_value_new (value->x ? x : NULL,
value->y ? y : NULL);
}