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.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/source/pdf/pdf-pattern.c b/source/pdf/pdf-pattern.c
index 93fbdd3e..32fd077c 100644
--- a/source/pdf/pdf-pattern.c
+++ b/source/pdf/pdf-pattern.c
@@ -16,7 +16,6 @@ static void
pdf_drop_pattern_imp(fz_context *ctx, fz_storable *pat_)
{
pdf_pattern *pat = (pdf_pattern *)pat_;
-
if (pat->resources)
pdf_drop_obj(ctx, pat->resources);
if (pat->contents)
@@ -45,38 +44,39 @@ pdf_load_pattern(fz_context *ctx, pdf_document *doc, pdf_obj *dict)
pat = fz_malloc_struct(ctx, pdf_pattern);
FZ_INIT_STORABLE(pat, 1, pdf_drop_pattern_imp);
+ pat->document = doc;
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));
+ fz_try(ctx)
+ {
+ /* 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(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"));
+ 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(ctx, dict, "BBox");
- pdf_to_rect(ctx, obj, &pat->bbox);
+ obj = pdf_dict_gets(ctx, dict, "BBox");
+ pdf_to_rect(ctx, obj, &pat->bbox);
- obj = pdf_dict_gets(ctx, dict, "Matrix");
- if (obj)
- pdf_to_matrix(ctx, obj, &pat->matrix);
- else
- pat->matrix = fz_identity;
+ 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(ctx, dict, "Resources");
- if (pat->resources)
- pdf_keep_obj(ctx, pat->resources);
+ pat->resources = pdf_dict_gets(ctx, dict, "Resources");
+ if (pat->resources)
+ pdf_keep_obj(ctx, pat->resources);
- fz_try(ctx)
- {
pat->contents = pdf_keep_obj(ctx, dict);
}
fz_catch(ctx)
{
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(ctx, dict), pdf_to_gen(ctx, dict));
+ fz_rethrow_message(ctx, "cannot load pattern (%d %d R)", pdf_to_num(ctx, dict), pdf_to_gen(ctx, dict));
}
return pat;
}