From bfc2cf849724adefc6b7af6ab774efc9cf70f622 Mon Sep 17 00:00:00 2001 From: m-holger Date: Sat, 9 Aug 2025 12:22:39 +0100 Subject: [PATCH] Refactor `QPDFJob`: replace `getArrayNItems` with `size`, use `emplace_back`, simplify array traversal, and centralize `empty` checks for improved clarity and efficiency. --- libqpdf/QPDFJob.cc | 17 +++++++---------- qpdf/qpdf.testcov | 2 -- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/libqpdf/QPDFJob.cc b/libqpdf/QPDFJob.cc index e483623..c6feb31 100644 --- a/libqpdf/QPDFJob.cc +++ b/libqpdf/QPDFJob.cc @@ -1082,7 +1082,7 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf) dp_array = decode_parms; } else { dp_array = QPDFObjectHandle::newArray(); - for (int i = 0; i < filters.getArrayNItems(); ++i) { + for (size_t i = 0; i < filters.size(); ++i) { dp_array.appendItem(decode_parms); } } @@ -2322,7 +2322,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf) }); std::list queue; - queue.push_back(pdf.getRoot().getKey("/Pages")); + queue.emplace_back(pdf.getRoot().getKey("/Pages")); while (!queue.empty()) { QPDFObjectHandle node = *queue.begin(); queue.pop_front(); @@ -2341,9 +2341,8 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf) }); return true; } - int n = kids.getArrayNItems(); - for (int i = 0; i < n; ++i) { - queue.push_back(kids.getArrayItem(i)); + for (auto const& kid: kids.as_array()) { + queue.emplace_back(kid); } } else { // This is a leaf node or a form XObject. @@ -2670,12 +2669,10 @@ QPDFJob::handlePageSpecs(QPDF& pdf, std::vector>& page_hea new_fields.appendItem(field); } } - if (new_fields.getArrayNItems() > 0) { - QTC::TC("qpdf", "QPDFJob keep some fields in pages"); - acroform.replaceKey("/Fields", new_fields); - } else { - QTC::TC("qpdf", "QPDFJob no more fields in pages"); + if (new_fields.empty()) { pdf.getRoot().removeKey("/AcroForm"); + } else { + acroform.replaceKey("/Fields", new_fields); } } } diff --git a/qpdf/qpdf.testcov b/qpdf/qpdf.testcov index dd6dabf..754eaff 100644 --- a/qpdf/qpdf.testcov +++ b/qpdf/qpdf.testcov @@ -573,9 +573,7 @@ QPDFAcroFormDocumentHelper copy annotation 3 QPDFAcroFormDocumentHelper field with parent 3 QPDFAcroFormDocumentHelper modify ap matrix 0 QPDFJob copy form fields in split_pages 0 -QPDFJob keep some fields in pages 0 QPDFJob pages keeping field from original 0 -QPDFJob no more fields in pages 0 QPDFObjectHandle merge reuse 0 QPDFObjectHandle merge generate 0 QPDFFormFieldObjectHelper get font from /DR 0 -- libgit2 0.21.4