summaryrefslogtreecommitdiff
path: root/source/xps/xps-link.c
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2017-12-07 15:15:26 +0100
committerTor Andersson <tor.andersson@artifex.com>2017-12-13 15:01:05 +0100
commiteacd070190d0c7a7fbc905a2a292f38e282b5a82 (patch)
tree57971ec5acec6b5867cc313c3d2f6f6f619e35fe /source/xps/xps-link.c
parentfa9cd085533f68367c299e058ab3fbb7ad8a2dc6 (diff)
downloadmupdf-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.c10
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)