summaryrefslogtreecommitdiff
path: root/source/pdf
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-05-15 10:20:15 +0200
committerTor Andersson <tor.andersson@artifex.com>2018-05-16 12:48:07 +0200
commit085b6f8a6c2519c132dc328e5a73da334f3bd16d (patch)
tree61ac0343b08c1e8b9d6ef7583d16144d485c6adf /source/pdf
parent756835b8388c93b30831c84b7208a47d6849920d (diff)
downloadmupdf-085b6f8a6c2519c132dc328e5a73da334f3bd16d.tar.xz
Remove needless deep copy of resource dictionary.
Also don't bother adding an indirect object for the top resource dict.
Diffstat (limited to 'source/pdf')
-rw-r--r--source/pdf/pdf-clean.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/source/pdf/pdf-clean.c b/source/pdf/pdf-clean.c
index 19ddd3b4..35eb27bb 100644
--- a/source/pdf/pdf-clean.c
+++ b/source/pdf/pdf-clean.c
@@ -148,7 +148,6 @@ void pdf_filter_page_contents(fz_context *ctx, pdf_document *doc, pdf_page *page
pdf_processor *proc_filter = NULL;
pdf_obj *new_obj = NULL;
pdf_obj *new_ref = NULL;
- pdf_obj *res_ref = NULL;
pdf_obj *res = NULL;
pdf_obj *obj;
pdf_obj *contents;
@@ -158,7 +157,6 @@ void pdf_filter_page_contents(fz_context *ctx, pdf_document *doc, pdf_page *page
fz_var(new_obj);
fz_var(new_ref);
fz_var(res);
- fz_var(res_ref);
fz_var(proc_buffer);
fz_var(proc_filter);
@@ -174,13 +172,12 @@ void pdf_filter_page_contents(fz_context *ctx, pdf_document *doc, pdf_page *page
{
res = pdf_new_dict(ctx, doc, 1);
proc_filter = pdf_new_filter_processor_with_text_filter(ctx, doc, proc_buffer, resources, res, text_filter, after_text, proc_arg);
-
pdf_process_contents(ctx, proc_filter, doc, resources, contents, cookie);
pdf_close_processor(ctx, proc_filter);
}
else
{
- res = pdf_deep_copy_obj(ctx, resources);
+ res = pdf_keep_obj(ctx, resources);
pdf_process_contents(ctx, proc_buffer, doc, resources, contents, cookie);
}
pdf_close_processor(ctx, proc_buffer);
@@ -296,8 +293,10 @@ void pdf_filter_page_contents(fz_context *ctx, pdf_document *doc, pdf_page *page
(*proc_fn)(ctx, buffer, res, proc_arg);
/* Update resource dictionary */
- res_ref = pdf_add_object(ctx, doc, res);
- pdf_dict_put(ctx, page->obj, PDF_NAME(Resources), res_ref);
+ if (sanitize)
+ {
+ pdf_dict_put(ctx, page->obj, PDF_NAME(Resources), res);
+ }
}
fz_always(ctx)
{
@@ -306,7 +305,6 @@ void pdf_filter_page_contents(fz_context *ctx, pdf_document *doc, pdf_page *page
fz_drop_buffer(ctx, buffer);
pdf_drop_obj(ctx, new_obj);
pdf_drop_obj(ctx, new_ref);
- pdf_drop_obj(ctx, res_ref);
pdf_drop_obj(ctx, res);
}
fz_catch(ctx)