summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-01-08 16:38:11 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-01-08 16:38:11 +0000
commite4acba6d1ddfe1c6d27b5a77edccea9d69b178f8 (patch)
tree62669778b7890785c0b9e5a362762ae0306761ac
parent2ed484817ef3a5084dc65a2ae1acdef551acd107 (diff)
downloadcairo-e4acba6d1ddfe1c6d27b5a77edccea9d69b178f8.tar.gz
xlib/shm: Only destroy an existing damage
_cairo_damage_destroy() does not like to be passed a NULL. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/cairo-xlib-surface-shm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cairo-xlib-surface-shm.c b/src/cairo-xlib-surface-shm.c
index ff0aaf876..d27b2d688 100644
--- a/src/cairo-xlib-surface-shm.c
+++ b/src/cairo-xlib-surface-shm.c
@@ -710,8 +710,10 @@ _cairo_xlib_shm_surface_finish (void *abstract_surface)
cairo_xlib_display_t *display;
cairo_status_t status;
- _cairo_damage_destroy (shm->image.base.damage);
- shm->image.base.damage = _cairo_damage_create_in_error (CAIRO_STATUS_SURFACE_FINISHED);
+ if (shm->image.base.damage) {
+ _cairo_damage_destroy (shm->image.base.damage);
+ shm->image.base.damage = _cairo_damage_create_in_error (CAIRO_STATUS_SURFACE_FINISHED);
+ }
status = _cairo_xlib_display_acquire (shm->image.base.device, &display);
if (unlikely (status))