summaryrefslogtreecommitdiff
path: root/source/pdf/pdf-write.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf/pdf-write.c')
-rw-r--r--source/pdf/pdf-write.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/pdf/pdf-write.c b/source/pdf/pdf-write.c
index 53761bc7..078719a6 100644
--- a/source/pdf/pdf-write.c
+++ b/source/pdf/pdf-write.c
@@ -2632,9 +2632,17 @@ void pdf_write_document(pdf_document *doc, char *filename, fz_write_options *fz_
opts.rev_gen_list[num] = pdf_get_xref_entry(doc, num)->gen;
}
+ if (opts.do_incremental && opts.do_garbage)
+ fz_throw(ctx, FZ_ERROR_GENERIC, "Can't do incremental writes with garbage collection");
+ if (opts.do_incremental && opts.do_linear)
+ fz_throw(ctx, FZ_ERROR_GENERIC, "Can't do incremental writes with linearisation");
+
/* Make sure any objects hidden in compressed streams have been loaded */
if (!opts.do_incremental)
+ {
+ pdf_ensure_solid_xref(doc, xref_len);
preloadobjstms(doc);
+ }
/* Sweep & mark objects from the trailer */
if (opts.do_garbage >= 1)