summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-pattern.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-pattern.c')
-rw-r--r--source/pdf/pdf-pattern.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/source/pdf/pdf-pattern.c b/source/pdf/pdf-pattern.c
index f13a49c9..93fbdd3e 100644
--- a/source/pdf/pdf-pattern.c
+++ b/source/pdf/pdf-pattern.c
@@ -13,14 +13,14 @@ pdf_drop_pattern(fz_context *ctx, pdf_pattern *pat)
}
static void
-pdf_free_pattern_imp(fz_context *ctx, fz_storable *pat_)
+pdf_drop_pattern_imp(fz_context *ctx, fz_storable *pat_)
{
pdf_pattern *pat = (pdf_pattern *)pat_;
if (pat->resources)
- pdf_drop_obj(pat->resources);
+ pdf_drop_obj(ctx, pat->resources);
if (pat->contents)
- pdf_drop_obj(pat->contents);
+ pdf_drop_obj(ctx, pat->contents);
fz_free(ctx, pat);
}
@@ -33,51 +33,50 @@ pdf_pattern_size(pdf_pattern *pat)
}
pdf_pattern *
-pdf_load_pattern(pdf_document *doc, pdf_obj *dict)
+pdf_load_pattern(fz_context *ctx, pdf_document *doc, pdf_obj *dict)
{
pdf_pattern *pat;
pdf_obj *obj;
- fz_context *ctx = doc->ctx;
- if ((pat = pdf_find_item(ctx, pdf_free_pattern_imp, dict)) != NULL)
+ if ((pat = pdf_find_item(ctx, pdf_drop_pattern_imp, dict)) != NULL)
{
return pat;
}
pat = fz_malloc_struct(ctx, pdf_pattern);
- FZ_INIT_STORABLE(pat, 1, pdf_free_pattern_imp);
+ FZ_INIT_STORABLE(pat, 1, pdf_drop_pattern_imp);
pat->resources = NULL;
pat->contents = NULL;
/* Store pattern now, to avoid possible recursion if objects refer back to this one */
pdf_store_item(ctx, dict, pat, pdf_pattern_size(pat));
- pat->ismask = pdf_to_int(pdf_dict_gets(dict, "PaintType")) == 2;
- pat->xstep = pdf_to_real(pdf_dict_gets(dict, "XStep"));
- pat->ystep = pdf_to_real(pdf_dict_gets(dict, "YStep"));
+ pat->ismask = pdf_to_int(ctx, pdf_dict_gets(ctx, dict, "PaintType")) == 2;
+ pat->xstep = pdf_to_real(ctx, pdf_dict_gets(ctx, dict, "XStep"));
+ pat->ystep = pdf_to_real(ctx, pdf_dict_gets(ctx, dict, "YStep"));
- obj = pdf_dict_gets(dict, "BBox");
+ obj = pdf_dict_gets(ctx, dict, "BBox");
pdf_to_rect(ctx, obj, &pat->bbox);
- obj = pdf_dict_gets(dict, "Matrix");
+ obj = pdf_dict_gets(ctx, dict, "Matrix");
if (obj)
pdf_to_matrix(ctx, obj, &pat->matrix);
else
pat->matrix = fz_identity;
- pat->resources = pdf_dict_gets(dict, "Resources");
+ pat->resources = pdf_dict_gets(ctx, dict, "Resources");
if (pat->resources)
- pdf_keep_obj(pat->resources);
+ pdf_keep_obj(ctx, pat->resources);
fz_try(ctx)
{
- pat->contents = pdf_keep_obj(dict);
+ pat->contents = pdf_keep_obj(ctx, dict);
}
fz_catch(ctx)
{
- pdf_remove_item(ctx, pdf_free_pattern_imp, dict);
+ pdf_remove_item(ctx, pdf_drop_pattern_imp, dict);
pdf_drop_pattern(ctx, pat);
- fz_rethrow_message(ctx, "cannot load pattern stream (%d %d R)", pdf_to_num(dict), pdf_to_gen(dict));
+ fz_rethrow_message(ctx, "cannot load pattern stream (%d %d R)", pdf_to_num(ctx, dict), pdf_to_gen(ctx, dict));
}
return pat;
}