Commit bfc2cf849724adefc6b7af6ab774efc9cf70f622
1 parent
1240c5ee
Refactor `QPDFJob`: replace `getArrayNItems` with `size`, use `emplace_back`, si…
…mplify array traversal, and centralize `empty` checks for improved clarity and efficiency.
Showing
2 changed files
with
7 additions
and
12 deletions
libqpdf/QPDFJob.cc
| @@ -1082,7 +1082,7 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf) | @@ -1082,7 +1082,7 @@ QPDFJob::doJSONPages(Pipeline* p, bool& first, QPDF& pdf) | ||
| 1082 | dp_array = decode_parms; | 1082 | dp_array = decode_parms; |
| 1083 | } else { | 1083 | } else { |
| 1084 | dp_array = QPDFObjectHandle::newArray(); | 1084 | dp_array = QPDFObjectHandle::newArray(); |
| 1085 | - for (int i = 0; i < filters.getArrayNItems(); ++i) { | 1085 | + for (size_t i = 0; i < filters.size(); ++i) { |
| 1086 | dp_array.appendItem(decode_parms); | 1086 | dp_array.appendItem(decode_parms); |
| 1087 | } | 1087 | } |
| 1088 | } | 1088 | } |
| @@ -2322,7 +2322,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf) | @@ -2322,7 +2322,7 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf) | ||
| 2322 | }); | 2322 | }); |
| 2323 | 2323 | ||
| 2324 | std::list<QPDFObjectHandle> queue; | 2324 | std::list<QPDFObjectHandle> queue; |
| 2325 | - queue.push_back(pdf.getRoot().getKey("/Pages")); | 2325 | + queue.emplace_back(pdf.getRoot().getKey("/Pages")); |
| 2326 | while (!queue.empty()) { | 2326 | while (!queue.empty()) { |
| 2327 | QPDFObjectHandle node = *queue.begin(); | 2327 | QPDFObjectHandle node = *queue.begin(); |
| 2328 | queue.pop_front(); | 2328 | queue.pop_front(); |
| @@ -2341,9 +2341,8 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf) | @@ -2341,9 +2341,8 @@ QPDFJob::shouldRemoveUnreferencedResources(QPDF& pdf) | ||
| 2341 | }); | 2341 | }); |
| 2342 | return true; | 2342 | return true; |
| 2343 | } | 2343 | } |
| 2344 | - int n = kids.getArrayNItems(); | ||
| 2345 | - for (int i = 0; i < n; ++i) { | ||
| 2346 | - queue.push_back(kids.getArrayItem(i)); | 2344 | + for (auto const& kid: kids.as_array()) { |
| 2345 | + queue.emplace_back(kid); | ||
| 2347 | } | 2346 | } |
| 2348 | } else { | 2347 | } else { |
| 2349 | // This is a leaf node or a form XObject. | 2348 | // This is a leaf node or a form XObject. |
| @@ -2670,12 +2669,10 @@ QPDFJob::handlePageSpecs(QPDF& pdf, std::vector<std::unique_ptr<QPDF>>& page_hea | @@ -2670,12 +2669,10 @@ QPDFJob::handlePageSpecs(QPDF& pdf, std::vector<std::unique_ptr<QPDF>>& page_hea | ||
| 2670 | new_fields.appendItem(field); | 2669 | new_fields.appendItem(field); |
| 2671 | } | 2670 | } |
| 2672 | } | 2671 | } |
| 2673 | - if (new_fields.getArrayNItems() > 0) { | ||
| 2674 | - QTC::TC("qpdf", "QPDFJob keep some fields in pages"); | ||
| 2675 | - acroform.replaceKey("/Fields", new_fields); | ||
| 2676 | - } else { | ||
| 2677 | - QTC::TC("qpdf", "QPDFJob no more fields in pages"); | 2672 | + if (new_fields.empty()) { |
| 2678 | pdf.getRoot().removeKey("/AcroForm"); | 2673 | pdf.getRoot().removeKey("/AcroForm"); |
| 2674 | + } else { | ||
| 2675 | + acroform.replaceKey("/Fields", new_fields); | ||
| 2679 | } | 2676 | } |
| 2680 | } | 2677 | } |
| 2681 | } | 2678 | } |
qpdf/qpdf.testcov
| @@ -573,9 +573,7 @@ QPDFAcroFormDocumentHelper copy annotation 3 | @@ -573,9 +573,7 @@ QPDFAcroFormDocumentHelper copy annotation 3 | ||
| 573 | QPDFAcroFormDocumentHelper field with parent 3 | 573 | QPDFAcroFormDocumentHelper field with parent 3 |
| 574 | QPDFAcroFormDocumentHelper modify ap matrix 0 | 574 | QPDFAcroFormDocumentHelper modify ap matrix 0 |
| 575 | QPDFJob copy form fields in split_pages 0 | 575 | QPDFJob copy form fields in split_pages 0 |
| 576 | -QPDFJob keep some fields in pages 0 | ||
| 577 | QPDFJob pages keeping field from original 0 | 576 | QPDFJob pages keeping field from original 0 |
| 578 | -QPDFJob no more fields in pages 0 | ||
| 579 | QPDFObjectHandle merge reuse 0 | 577 | QPDFObjectHandle merge reuse 0 |
| 580 | QPDFObjectHandle merge generate 0 | 578 | QPDFObjectHandle merge generate 0 |
| 581 | QPDFFormFieldObjectHelper get font from /DR 0 | 579 | QPDFFormFieldObjectHelper get font from /DR 0 |