From 7feb710e60cdab5c448a396537a8de16e72091e2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Tue, 15 Feb 2011 04:55:02 -0500 Subject: [PATCH] Avoid marking images dirty when properties are reset When an image property is set to the same value that it already is, there is no reason to mark the image dirty and incur a recomputation of the flags. --- pixman/pixman-image.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pixman/pixman-image.c b/pixman/pixman-image.c index e91d87c..55fc17a 100644 --- a/pixman/pixman-image.c +++ b/pixman/pixman-image.c @@ -511,6 +511,12 @@ pixman_image_set_transform (pixman_image_t * image, goto out; } + if (common->transform && + memcmp (common->transform, transform, sizeof (pixman_transform_t) == 0)) + { + return TRUE; + } + if (common->transform == NULL) common->transform = malloc (sizeof (pixman_transform_t)); @@ -535,6 +541,9 @@ PIXMAN_EXPORT void pixman_image_set_repeat (pixman_image_t *image, pixman_repeat_t repeat) { + if (image->common.repeat == repeat) + return; + image->common.repeat = repeat; image_property_changed (image); @@ -579,6 +588,9 @@ PIXMAN_EXPORT void pixman_image_set_source_clipping (pixman_image_t *image, pixman_bool_t clip_sources) { + if (image->common.clip_sources == clip_sources) + return; + image->common.clip_sources = clip_sources; image_property_changed (image); @@ -594,6 +606,9 @@ pixman_image_set_indexed (pixman_image_t * image, { bits_image_t *bits = (bits_image_t *)image; + if (bits->indexed == indexed) + return; + bits->indexed = indexed; image_property_changed (image); @@ -656,6 +671,9 @@ PIXMAN_EXPORT void pixman_image_set_component_alpha (pixman_image_t *image, pixman_bool_t component_alpha) { + if (image->common.component_alpha == component_alpha) + return; + image->common.component_alpha = component_alpha; image_property_changed (image); -- 2.7.4