summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-01-13 22:48:30 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2013-01-13 22:48:30 +0000
commit6639c1231072d71d33eb0952bae5f95e7480cd0d (patch)
tree5a22e3ef6d98d9416777c353b47dd81f69cd04d2
parentfd34f420ec3ba02eb39f22f6551705ab23ebfc28 (diff)
downloadcairo-6639c1231072d71d33eb0952bae5f95e7480cd0d.tar.gz
xlib: Initialise Pixmap for proxy sources
So that we do not try to tell X to free a garbage pixmap and promptly kill us. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/cairo-xlib-source.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cairo-xlib-source.c b/src/cairo-xlib-source.c
index d0d6c0edd..24290f73d 100644
--- a/src/cairo-xlib-source.c
+++ b/src/cairo-xlib-source.c
@@ -109,7 +109,7 @@ source (cairo_xlib_surface_t *dst, Picture picture, Pixmap pixmap)
if (picture == None)
return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY));
- source = malloc (sizeof (cairo_image_surface_t));
+ source = malloc (sizeof (*source));
if (unlikely (source == NULL)) {
XRenderFreePicture (dst->display->display, picture);
if (pixmap)
@@ -973,6 +973,7 @@ surface_source (cairo_xlib_surface_t *dst,
_cairo_xlib_shm_surface_get_pixmap (src),
_cairo_xlib_shm_surface_get_xrender_format (src),
0, NULL);
+ proxy->source.pixmap = None;
proxy->source.has_component_alpha = 0;
proxy->source.has_matrix = 0;