diff options
author | Uli Schlachter <psychon@znc.in> | 2011-07-01 10:26:28 +0200 |
---|---|---|
committer | Uli Schlachter <psychon@znc.in> | 2011-07-01 10:26:28 +0200 |
commit | 59fadcf7d93a179554a3f615c02e48547d6b141e (patch) | |
tree | 584fdc2f459d76f7c13c13fdb64ec6ea8229dfd6 | |
parent | 4495e08e9e5fbcd386bf398097c8276f7f5c862d (diff) |
xlib-xcb: Fix api-special-cases test
The functions cairo_xlib_surface_set_size and cairo_xlib_surface_set_drawable
didn't set the expected error when called with a finished surface.
Signed-off-by: Uli Schlachter <psychon@znc.in>
-rw-r--r-- | src/cairo-xlib-xcb-surface.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/cairo-xlib-xcb-surface.c b/src/cairo-xlib-xcb-surface.c index 868844b1..16fabd87 100644 --- a/src/cairo-xlib-xcb-surface.c +++ b/src/cairo-xlib-xcb-surface.c @@ -418,6 +418,11 @@ cairo_xlib_surface_set_size (cairo_surface_t *abstract_surface, if (unlikely (abstract_surface->status)) return; + if (unlikely (abstract_surface->finished)) { + status = _cairo_surface_set_error (abstract_surface, + _cairo_error (CAIRO_STATUS_SURFACE_FINISHED)); + return; + } if (surface->base.type != CAIRO_SURFACE_TYPE_XLIB) { status = _cairo_surface_set_error (abstract_surface, @@ -426,6 +431,10 @@ cairo_xlib_surface_set_size (cairo_surface_t *abstract_surface, } cairo_xcb_surface_set_size (&surface->xcb->base, width, height); + if (unlikely (surface->xcb->base.status)) { + status = _cairo_surface_set_error (abstract_surface, + _cairo_error (surface->xcb->base.status)); + } } void @@ -439,6 +448,11 @@ cairo_xlib_surface_set_drawable (cairo_surface_t *abstract_surface, if (unlikely (abstract_surface->status)) return; + if (unlikely (abstract_surface->finished)) { + status = _cairo_surface_set_error (abstract_surface, + _cairo_error (CAIRO_STATUS_SURFACE_FINISHED)); + return; + } if (surface->base.type != CAIRO_SURFACE_TYPE_XLIB) { status = _cairo_surface_set_error (abstract_surface, |