summaryrefslogtreecommitdiff
path: root/pdf/pdf_outline.c
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2011-09-14 17:36:57 +0100
committerRobin Watts <Robin.Watts@artifex.com>2011-09-15 14:50:17 +0100
commitb51ef0eea028c73b6379e832eaa34fff3fbbb927 (patch)
tree1ab685ccd356e7fdc832b2e3322c0486b2670cfb /pdf/pdf_outline.c
parent89ae81f651bfa112b8e07317eb6983beaf7cb212 (diff)
downloadmupdf-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.c44
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;
}