1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-25 17:48:07 +02:00

Don't save anything in XFA entry if no XFA! (bug 1732344)

- it aims to fix https://bugzilla.mozilla.org/show_bug.cgi?id=1732344
  - rename some variables to have a more clear code;
  - and last but no least, add a unit test to test saving.
This commit is contained in:
Calixte Denizet 2021-09-23 18:18:55 +02:00
parent c914e9f0a6
commit 4b0538d07a
5 changed files with 60 additions and 32 deletions

View file

@ -624,18 +624,18 @@ class WorkerMessageHandler {
}
const xfa = (acroForm instanceof Dict && acroForm.get("XFA")) || null;
let xfaDatasets = null;
let hasDatasets = false;
let xfaDatasetsRef = null;
let hasXfaDatasetsEntry = false;
if (Array.isArray(xfa)) {
for (let i = 0, ii = xfa.length; i < ii; i += 2) {
if (xfa[i] === "datasets") {
xfaDatasets = xfa[i + 1];
xfaDatasetsRef = xfa[i + 1];
acroFormRef = null;
hasDatasets = true;
hasXfaDatasetsEntry = true;
}
}
if (xfaDatasets === null) {
xfaDatasets = xref.getNewRef();
if (xfaDatasetsRef === null) {
xfaDatasetsRef = xref.getNewRef();
}
} else if (xfa) {
acroFormRef = null;
@ -674,8 +674,9 @@ class WorkerMessageHandler {
xrefInfo: newXrefInfo,
newRefs,
xref,
datasetsRef: xfaDatasets,
hasDatasets,
hasXfa: !!xfa,
xfaDatasetsRef,
hasXfaDatasetsEntry,
acroFormRef,
acroForm,
xfaData,