summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-clean.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-clean.c')
-rw-r--r--source/pdf/pdf-clean.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/source/pdf/pdf-clean.c b/source/pdf/pdf-clean.c
index 0c9cb974..eaa4c0e2 100644
--- a/source/pdf/pdf-clean.c
+++ b/source/pdf/pdf-clean.c
@@ -236,11 +236,15 @@ void pdf_filter_page_contents(fz_context *ctx, pdf_document *doc, pdf_page *page
l = pdf_dict_len(ctx, obj);
for (i = 0; i < l; i++)
{
+ pdf_obj *pat_res;
pdf_obj *pat = pdf_dict_get_val(ctx, obj, i);
if (!pat)
continue;
+ pat_res = pdf_dict_get(ctx, pat, PDF_NAME_Resources);
+ if (pat_res == NULL)
+ pat_res = resources;
if (pdf_to_int(ctx, pdf_dict_get(ctx, pat, PDF_NAME_PatternType)) == 1)
- pdf_clean_stream_object(ctx, doc, pat, resources, cookie, 0, text_filter, after_text, proc_arg, sanitize, ascii);
+ pdf_clean_stream_object(ctx, doc, pat, pat_res, cookie, 0, text_filter, after_text, proc_arg, sanitize, ascii);
}
}
@@ -252,11 +256,15 @@ void pdf_filter_page_contents(fz_context *ctx, pdf_document *doc, pdf_page *page
l = pdf_dict_len(ctx, obj);
for (i = 0; i < l; i++)
{
+ pdf_obj *xobj_res;
pdf_obj *xobj = pdf_dict_get_val(ctx, obj, i);
if (!xobj)
continue;
+ xobj_res = pdf_dict_get(ctx, xobj, PDF_NAME_Resources);
+ if (xobj_res == NULL)
+ xobj_res = resources;
if (pdf_name_eq(ctx, PDF_NAME_Form, pdf_dict_get(ctx, xobj, PDF_NAME_Subtype)))
- pdf_clean_stream_object(ctx, doc, xobj, resources, cookie, 1, text_filter, after_text, proc_arg, sanitize, ascii);
+ pdf_clean_stream_object(ctx, doc, xobj, xobj_res, cookie, 1, text_filter, after_text, proc_arg, sanitize, ascii);
}
}