diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/pdf/pdf-write.c | 5 | ||||
-rw-r--r-- | source/pdf/pdf-xref.c | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/source/pdf/pdf-write.c b/source/pdf/pdf-write.c index 53a63cfc..26fcd9d1 100644 --- a/source/pdf/pdf-write.c +++ b/source/pdf/pdf-write.c @@ -2177,6 +2177,8 @@ static void writexrefstream(fz_context *ctx, pdf_document *doc, pdf_write_state { fz_rethrow(ctx); } + + doc->has_old_style_xrefs = 0; } static void @@ -2865,6 +2867,9 @@ int pdf_can_be_saved_incrementally(fz_context *ctx, pdf_document *doc) return 0; if (doc->crypt != NULL) return 0; + if (doc->has_xref_streams && doc->has_old_style_xrefs) + return 0; + return 1; } diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c index d60eb089..682a3ddb 100644 --- a/source/pdf/pdf-xref.c +++ b/source/pdf/pdf-xref.c @@ -933,6 +933,8 @@ pdf_read_old_xref(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf) if (tok != PDF_TOK_OPEN_DICT) fz_throw(ctx, FZ_ERROR_GENERIC, "expected trailer dictionary"); + doc->has_old_style_xrefs = 1; + return pdf_parse_dict(ctx, doc, file, buf); } |