summaryrefslogtreecommitdiff
path: root/src/cairo-xlib-xcb-surface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cairo-xlib-xcb-surface.c')
-rw-r--r--src/cairo-xlib-xcb-surface.c6
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);