summaryrefslogtreecommitdiff
path: root/xps/xps_outline.c
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2012-08-04 19:35:39 +0200
committerSebastian Rasmussen <sebras@gmail.com>2012-08-06 13:59:30 +0200
commitffb37aaa386095d61846419c860eb46b587b6b1d (patch)
tree313e382bf77e57062bebd26bfc5ae1dc656eb11e /xps/xps_outline.c
parentd44c98001b404a18ccc9d219976b9f32c28922c3 (diff)
downloadmupdf-ffb37aaa386095d61846419c860eb46b587b6b1d.tar.xz
Make use of fz_always instead of repeating code for error and normal path
Diffstat (limited to 'xps/xps_outline.c')
-rw-r--r--xps/xps_outline.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/xps/xps_outline.c b/xps/xps_outline.c
index 0feb7b24..21dc0710 100644
--- a/xps/xps_outline.c
+++ b/xps/xps_outline.c
@@ -88,12 +88,14 @@ xps_load_document_structure(xps_document *doc, xps_fixdoc *fixdoc)
{
root = xml_parse_document(doc->ctx, part->data, part->size);
}
- fz_catch(doc->ctx)
+ fz_always(doc->ctx)
{
xps_free_part(doc, part);
+ }
+ fz_catch(doc->ctx)
+ {
fz_rethrow(doc->ctx);
}
- xps_free_part(doc, part);
if (!root)
return NULL;
@@ -101,12 +103,14 @@ xps_load_document_structure(xps_document *doc, xps_fixdoc *fixdoc)
{
outline = xps_parse_document_structure(doc, root);
}
- fz_catch(doc->ctx)
+ fz_always(doc->ctx)
{
xml_free_element(doc->ctx, root);
+ }
+ fz_catch(doc->ctx)
+ {
fz_rethrow(doc->ctx);
}
- xml_free_element(doc->ctx, root);
return outline;
}