summaryrefslogtreecommitdiff
path: root/source/pdf
diff options
context:
space:
mode:
Diffstat (limited to 'source/pdf')
-rw-r--r--source/pdf/pdf-write.c5
-rw-r--r--source/pdf/pdf-xref.c2
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);
}