fz_clear_pixmap(ctx, page_contents);
dev = fz_new_draw_device(ctx, draw_page_ctm, page_contents);
- fz_run_page_contents(ctx, fzpage, dev, fz_identity, NULL);
- fz_close_device(ctx, dev);
- fz_drop_device(ctx, dev);
+
+ fz_try(ctx)
+ {
+ fz_run_page_contents(ctx, fzpage, dev, fz_identity, NULL);
+ fz_close_device(ctx, dev);
+ }
+ fz_always(ctx)
+ fz_drop_device(ctx, dev);
+ fz_catch(ctx)
+ fz_rethrow(ctx);
}
pix = fz_clone_pixmap_area_with_different_seps(ctx, page_contents, NULL, fz_device_rgb(ctx), NULL, fz_default_color_params, NULL);
{
dev = fz_new_draw_device(ctx, draw_page_ctm, pix);
- fz_run_page_annots(ctx, fzpage, dev, fz_identity, NULL);
- fz_run_page_widgets(ctx, fzpage, dev, fz_identity, NULL);
- fz_close_device(ctx, dev);
- fz_drop_device(ctx, dev);
+ fz_try(ctx)
+ {
+ fz_run_page_annots(ctx, fzpage, dev, fz_identity, NULL);
+ fz_run_page_widgets(ctx, fzpage, dev, fz_identity, NULL);
+ fz_close_device(ctx, dev);
+ }
+ fz_always(ctx)
+ fz_drop_device(ctx, dev);
+ fz_catch(ctx)
+ fz_rethrow(ctx);
}
if (currentinvert)