summaryrefslogtreecommitdiff
path: root/source/pdf
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf')
-rw-r--r--source/pdf/pdf-op-buffer.c8
-rw-r--r--source/pdf/pdf-write.c6
2 files changed, 9 insertions, 5 deletions
diff --git a/source/pdf/pdf-op-buffer.c b/source/pdf/pdf-op-buffer.c
index 6382d71e..69707843 100644
--- a/source/pdf/pdf-op-buffer.c
+++ b/source/pdf/pdf-op-buffer.c
@@ -789,6 +789,13 @@ pdf_out_EX(fz_context *ctx, pdf_processor *proc)
}
static void
+pdf_close_output_processor(fz_context *ctx, pdf_processor *proc)
+{
+ fz_output *out = ((pdf_output_processor*)proc)->out;
+ fz_close_output(ctx, out);
+}
+
+static void
pdf_drop_output_processor(fz_context *ctx, pdf_processor *proc)
{
fz_output *out = ((pdf_output_processor*)proc)->out;
@@ -800,6 +807,7 @@ pdf_new_output_processor(fz_context *ctx, fz_output *out, int ahxencode)
{
pdf_output_processor *proc = pdf_new_processor(ctx, sizeof *proc);
{
+ proc->super.close_processor = pdf_close_output_processor;
proc->super.drop_processor = pdf_drop_output_processor;
/* general graphics state */
diff --git a/source/pdf/pdf-write.c b/source/pdf/pdf-write.c
index 9f123206..b97a9956 100644
--- a/source/pdf/pdf-write.c
+++ b/source/pdf/pdf-write.c
@@ -3073,14 +3073,10 @@ void pdf_save_document(fz_context *ctx, pdf_document *doc, const char *filename,
{
opts.out = fz_new_output_with_path(ctx, filename, 0);
}
-
- if (!opts.out)
- fz_throw(ctx, FZ_ERROR_GENERIC, "cannot open output file '%s'", filename);
-
fz_try(ctx)
{
do_pdf_save_document(ctx, doc, &opts, in_opts);
-
+ fz_close_output(ctx, opts.out);
complete_signatures(ctx, doc, &opts, filename);
}
fz_always(ctx)