summaryrefslogtreecommitdiff
path: root/gsk/gsktransform.c
diff options
context:
space:
mode:
authorTimm Bäder <mail@baedert.org>2020-12-18 10:10:56 +0100
committerTimm Bäder <mail@baedert.org>2020-12-21 10:26:02 +0100
commitbd5d1615ac53fb2339147cc99c26f6da5613538c (patch)
treed6779259741a78a3493f73d3140cef437b0b41ce /gsk/gsktransform.c
parent21299cc7e44a3b7f1425f683c7c66c5a796bbbb4 (diff)
downloadgtk+-bd5d1615ac53fb2339147cc99c26f6da5613538c.tar.gz
GskTransform: Avoid a ref+unref pair
If gsk_transform_is_identity() returned FALSE for the next transform, the previous code did a ref + unref pair, even though it was unneeded.
Diffstat (limited to 'gsk/gsktransform.c')
-rw-r--r--gsk/gsktransform.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gsk/gsktransform.c b/gsk/gsktransform.c
index adc64ccc30..3f1e89ad43 100644
--- a/gsk/gsktransform.c
+++ b/gsk/gsktransform.c
@@ -127,8 +127,10 @@ gsk_transform_alloc (const GskTransformClass *transform_class,
self->transform_class = transform_class;
self->category = next ? MIN (category, next->category) : category;
- self->next = gsk_transform_is_identity (next) ? NULL : gsk_transform_ref (next);
- g_clear_pointer (&next, gsk_transform_unref);
+ if (gsk_transform_is_identity (next))
+ gsk_transform_unref (next);
+ else
+ self->next = next;
return self;
}