surface: don't call begin_modification on finished surfaces

Fixes https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/600622

Caught by api-special-cases test
This commit is contained in:
Benjamin Otte 2010-07-05 18:23:37 +02:00
parent cf0245c120
commit c1689ef6f2

View file

@ -2346,14 +2346,14 @@ cairo_surface_show_page (cairo_surface_t *surface)
if (surface->status)
return;
_cairo_surface_begin_modification (surface);
if (surface->finished) {
status_ignored = _cairo_surface_set_error (surface,
CAIRO_STATUS_SURFACE_FINISHED);
return;
}
_cairo_surface_begin_modification (surface);
/* It's fine if some backends don't implement show_page */
if (surface->backend->show_page == NULL)
return;