diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2017-12-07 15:15:26 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2017-12-13 15:01:05 +0100 |
commit | eacd070190d0c7a7fbc905a2a292f38e282b5a82 (patch) | |
tree | 57971ec5acec6b5867cc313c3d2f6f6f619e35fe /source/xps/xps-link.c | |
parent | fa9cd085533f68367c299e058ab3fbb7ad8a2dc6 (diff) | |
download | mupdf-eacd070190d0c7a7fbc905a2a292f38e282b5a82.tar.xz |
Parse XML using pool allocator.
This needs adding a fz_xml_doc type to hold the pool.
Diffstat (limited to 'source/xps/xps-link.c')
-rw-r--r-- | source/xps/xps-link.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source/xps/xps-link.c b/source/xps/xps-link.c index c26a8d99..59b4d1a5 100644 --- a/source/xps/xps-link.c +++ b/source/xps/xps-link.c @@ -161,12 +161,14 @@ xps_load_links_in_element(fz_context *ctx, xps_document *doc, const fz_matrix *c static void xps_load_links_in_fixed_page(fz_context *ctx, xps_document *doc, const fz_matrix *ctm, xps_page *page, fz_link **link) { - fz_xml *node, *resource_tag; + fz_xml *root, *node, *resource_tag; xps_resource *dict = NULL; char base_uri[1024]; char *s; - if (!page->root) + root = fz_xml_root(page->xml); + + if (!root) return; fz_strlcpy(base_uri, page->fix->name, sizeof base_uri); @@ -174,11 +176,11 @@ xps_load_links_in_fixed_page(fz_context *ctx, xps_document *doc, const fz_matrix if (s) s[1] = 0; - resource_tag = fz_xml_down(fz_xml_find_down(page->root, "FixedPage.Resources")); + resource_tag = fz_xml_down(fz_xml_find_down(root, "FixedPage.Resources")); if (resource_tag) dict = xps_parse_resource_dictionary(ctx, doc, base_uri, resource_tag); - for (node = fz_xml_down(page->root); node; node = fz_xml_next(node)) + for (node = fz_xml_down(root); node; node = fz_xml_next(node)) xps_load_links_in_element(ctx, doc, ctm, base_uri, dict, node, link); if (dict) |