diff options
author | Robin Watts <robin.watts@artifex.com> | 2011-09-14 17:36:57 +0100 |
---|---|---|
committer | Robin Watts <Robin.Watts@artifex.com> | 2011-09-15 14:50:17 +0100 |
commit | b51ef0eea028c73b6379e832eaa34fff3fbbb927 (patch) | |
tree | 1ab685ccd356e7fdc832b2e3322c0486b2670cfb /pdf/pdf_outline.c | |
parent | 89ae81f651bfa112b8e07317eb6983beaf7cb212 (diff) | |
download | mupdf-b51ef0eea028c73b6379e832eaa34fff3fbbb927.tar.xz |
Add context to mupdf.
Huge pervasive change to lots of files, adding a context for exception
handling and allocation.
In time we'll move more statics into there.
Also fix some for(i = 0; i < function(...); i++) calls.
Diffstat (limited to 'pdf/pdf_outline.c')
-rw-r--r-- | pdf/pdf_outline.c | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/pdf/pdf_outline.c b/pdf/pdf_outline.c index 4f81bb9b..0e6ab233 100644 --- a/pdf/pdf_outline.c +++ b/pdf/pdf_outline.c @@ -6,33 +6,34 @@ pdf_load_outline_imp(pdf_xref *xref, fz_obj *dict) { pdf_outline *node; fz_obj *obj; + fz_context *ctx = xref->ctx; - if (fz_is_null(dict)) + if (fz_is_null(ctx, dict)) return NULL; - node = fz_malloc(sizeof(pdf_outline)); + node = fz_malloc(ctx, sizeof(pdf_outline)); node->title = NULL; node->link = NULL; node->child = NULL; node->next = NULL; node->count = 0; - obj = fz_dict_gets(dict, "Title"); + obj = fz_dict_gets(ctx, dict, "Title"); if (obj) - node->title = pdf_to_utf8(obj); + node->title = pdf_to_utf8(ctx, obj); - obj = fz_dict_gets(dict, "Count"); + obj = fz_dict_gets(ctx, dict, "Count"); if (obj) - node->count = fz_to_int(obj); + node->count = fz_to_int(ctx, obj); - if (fz_dict_gets(dict, "Dest") || fz_dict_gets(dict, "A")) + if (fz_dict_gets(ctx, dict, "Dest") || fz_dict_gets(ctx, dict, "A")) node->link = pdf_load_link(xref, dict); - obj = fz_dict_gets(dict, "First"); + obj = fz_dict_gets(ctx, dict, "First"); if (obj) node->child = pdf_load_outline_imp(xref, obj); - obj = fz_dict_gets(dict, "Next"); + obj = fz_dict_gets(ctx, dict, "Next"); if (obj) node->next = pdf_load_outline_imp(xref, obj); @@ -43,10 +44,11 @@ pdf_outline * pdf_load_outline(pdf_xref *xref) { fz_obj *root, *obj, *first; + fz_context *ctx = xref->ctx; - root = fz_dict_gets(xref->trailer, "Root"); - obj = fz_dict_gets(root, "Outlines"); - first = fz_dict_gets(obj, "First"); + root = fz_dict_gets(ctx, xref->trailer, "Root"); + obj = fz_dict_gets(ctx, root, "Outlines"); + first = fz_dict_gets(ctx, obj, "First"); if (first) return pdf_load_outline_imp(xref, first); @@ -54,20 +56,20 @@ pdf_load_outline(pdf_xref *xref) } void -pdf_free_outline(pdf_outline *outline) +pdf_free_outline(fz_context *ctx, pdf_outline *outline) { if (outline->child) - pdf_free_outline(outline->child); + pdf_free_outline(ctx, outline->child); if (outline->next) - pdf_free_outline(outline->next); + pdf_free_outline(ctx, outline->next); if (outline->link) - pdf_free_link(outline->link); - fz_free(outline->title); - fz_free(outline); + pdf_free_link(ctx, outline->link); + fz_free(ctx, outline->title); + fz_free(ctx, outline); } void -pdf_debug_outline(pdf_outline *outline, int level) +pdf_debug_outline(fz_context *ctx, pdf_outline *outline, int level) { int i; while (outline) @@ -81,12 +83,12 @@ pdf_debug_outline(pdf_outline *outline, int level) printf("<NULL> "); if (outline->link) - fz_debug_obj(outline->link->dest); + fz_debug_obj(ctx, outline->link->dest); else printf("<NULL>\n"); if (outline->child) - pdf_debug_outline(outline->child, level + 2); + pdf_debug_outline(ctx, outline->child, level + 2); outline = outline->next; } |