[cairo-paginated-surface] Check surface status during finish.

Propagate children status during finish.
This commit is contained in:
Chris Wilson 2007-05-12 00:10:26 +01:00
parent 9ffd8154e2
commit 58c35e6d7b

View file

@ -134,11 +134,15 @@ _cairo_paginated_surface_finish (void *abstract_surface)
if (surface->page_is_blank == FALSE || surface->page_num == 1)
status = _cairo_paginated_surface_show_page (abstract_surface);
if (status == CAIRO_STATUS_SUCCESS)
if (status == CAIRO_STATUS_SUCCESS) {
cairo_surface_finish (surface->target);
status = cairo_surface_status (surface->target);
}
if (status == CAIRO_STATUS_SUCCESS)
if (status == CAIRO_STATUS_SUCCESS) {
cairo_surface_finish (surface->meta);
status = cairo_surface_status (surface->meta);
}
cairo_surface_destroy (surface->target);
@ -318,6 +322,9 @@ _cairo_paginated_surface_show_page (void *abstract_surface)
if (status)
return status;
if (cairo_surface_status (surface->meta))
return cairo_surface_status (surface->meta);
cairo_surface_destroy (surface->meta);
surface->meta = _cairo_meta_surface_create (surface->content,