diff options
author | Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> | 2013-01-25 15:13:06 +0200 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2013-01-27 14:33:08 -0500 |
commit | 23e72b867ae1d1b7e5023babd815fd91625c8309 (patch) | |
tree | e875222e25ffd7df0553b7ac973ff16e87d240c3 /src | |
parent | 5fb44141bf8eda807a742f8ab264306826c39bd2 (diff) | |
download | weston-23e72b867ae1d1b7e5023babd815fd91625c8309.tar.gz weston-23e72b867ae1d1b7e5023babd815fd91625c8309.tar.bz2 weston-23e72b867ae1d1b7e5023babd815fd91625c8309.zip |
pixman-renderer: Don't unreference NULL hw_buffer image
If the buffer for an output was never set, or was reset to NULL at some
point, destroying the renderer output private would cause a crash.
Diffstat (limited to 'src')
-rw-r--r-- | src/compositor.c | 1 | ||||
-rw-r--r-- | src/pixman-renderer.c | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/compositor.c b/src/compositor.c index cd11f6b2..a2e95c94 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -3207,6 +3207,7 @@ usage(int error_code) " --connector=ID\tBring up only this connector\n" " --seat=SEAT\t\tThe seat that weston should run on\n" " --tty=TTY\t\tThe tty to use\n" + " --use-pixman\t\tUse the pixman (CPU) renderer\n" " --current-mode\tPrefer current KMS mode over EDID preferred mode\n\n"); fprintf(stderr, diff --git a/src/pixman-renderer.c b/src/pixman-renderer.c index 77ae99ef..8d95197e 100644 --- a/src/pixman-renderer.c +++ b/src/pixman-renderer.c @@ -507,7 +507,9 @@ pixman_renderer_output_destroy(struct weston_output *output) struct pixman_output_state *po = get_output_state(output); pixman_image_unref(po->shadow_image); - pixman_image_unref(po->hw_buffer); + + if (po->hw_buffer) + pixman_image_unref(po->hw_buffer); po->shadow_image = NULL; po->hw_buffer = NULL; |