diff options
Diffstat (limited to 'src/cairo-xlib-xcb-surface.c')
-rw-r--r-- | src/cairo-xlib-xcb-surface.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cairo-xlib-xcb-surface.c b/src/cairo-xlib-xcb-surface.c index a8e0cde7b..3dbb9bd91 100644 --- a/src/cairo-xlib-xcb-surface.c +++ b/src/cairo-xlib-xcb-surface.c @@ -396,6 +396,9 @@ cairo_xlib_surface_set_size (cairo_surface_t *abstract_surface, cairo_xlib_xcb_surface_t *surface = (cairo_xlib_xcb_surface_t *) abstract_surface; cairo_status_t status; + if (unlikely (abstract_surface->status)) + return; + if (surface->base.type != CAIRO_SURFACE_TYPE_XLIB) { status = _cairo_surface_set_error (abstract_surface, CAIRO_STATUS_SURFACE_TYPE_MISMATCH); @@ -414,6 +417,9 @@ cairo_xlib_surface_set_drawable (cairo_surface_t *abstract_surface, cairo_xlib_xcb_surface_t *surface = (cairo_xlib_xcb_surface_t *)abstract_surface; cairo_status_t status; + if (unlikely (abstract_surface->status)) + return; + if (surface->base.type != CAIRO_SURFACE_TYPE_XLIB) { status = _cairo_surface_set_error (abstract_surface, CAIRO_STATUS_SURFACE_TYPE_MISMATCH); |