static int xps_read_and_process_metadata_part(xps_context *ctx, char *name) { xps_part *part; int code; part = xps_read_part(ctx, name); if (!part) return fz_rethrow(-1, "cannot read zip part '%s'", name); code = xps_parse_metadata(ctx, part); if (code) return fz_rethrow(code, "cannot process metadata part '%s'", name); xps_free_part(ctx, part); return fz_okay; }
static void xps_read_and_process_metadata_part(fz_context *ctx, xps_document *doc, char *name, xps_fixdoc *fixdoc) { xps_part *part; if (!xps_has_part(ctx, doc, name)) return; part = xps_read_part(ctx, doc, name); fz_try(ctx) { xps_parse_metadata(ctx, doc, part, fixdoc); } fz_always(ctx) { xps_drop_part(ctx, doc, part); } fz_catch(ctx) { fz_rethrow(ctx); } }