From 9dea7d308069eeb5af3edd44198efa3d80ac83bf Mon Sep 17 00:00:00 2001 From: m-holger Date: Tue, 12 Jul 2022 12:35:24 +0100 Subject: Tune QPDF::getAllPagesInternal Avoid calling getAllPagesInternal for each /Page object. --- qpdf/qtest/qpdf/no-pages-types-fix.out | 2 +- qpdf/qtest/qpdf/no-pages-types.out | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'qpdf') diff --git a/qpdf/qtest/qpdf/no-pages-types-fix.out b/qpdf/qtest/qpdf/no-pages-types-fix.out index 81e71eeb..3a1ee1a2 100644 --- a/qpdf/qtest/qpdf/no-pages-types-fix.out +++ b/qpdf/qtest/qpdf/no-pages-types-fix.out @@ -1,3 +1,3 @@ -WARNING: no-pages-types.pdf (page tree node, offset 307): /Type key should be /Page but is not; overriding WARNING: no-pages-types.pdf (page tree node, offset 307): /Type key should be /Pages but is not; overriding +WARNING: no-pages-types.pdf (page tree node, offset 307): /Type key should be /Page but is not; overriding qpdf: operation succeeded with warnings; resulting file may have some problems diff --git a/qpdf/qtest/qpdf/no-pages-types.out b/qpdf/qtest/qpdf/no-pages-types.out index 1221b68f..a6ef5f68 100644 --- a/qpdf/qtest/qpdf/no-pages-types.out +++ b/qpdf/qtest/qpdf/no-pages-types.out @@ -2,6 +2,6 @@ checking no-pages-types.pdf PDF Version: 1.3 File is not encrypted File is not linearized +WARNING: no-pages-types.pdf (page tree node, offset 135): /Type key should be /Pages but is not; overriding WARNING: no-pages-types.pdf (page tree node, offset 307): /Type key should be /Page but is not; overriding -WARNING: no-pages-types.pdf (page tree node, offset 307): /Type key should be /Pages but is not; overriding qpdf: operation succeeded with warnings -- cgit v1.2.3-54-g00ecf From ff69773b35480de41f86f410a120524c4d57d5c0 Mon Sep 17 00:00:00 2001 From: m-holger Date: Tue, 12 Jul 2022 17:14:31 +0100 Subject: Fix warnings in QPDF::getAllPagesInternal --- libqpdf/QPDF_pages.cc | 10 ++-------- qpdf/qtest/qpdf/no-pages-types-fix.out | 4 ++-- qpdf/qtest/qpdf/no-pages-types.out | 4 ++-- 3 files changed, 6 insertions(+), 12 deletions(-) (limited to 'qpdf') diff --git a/libqpdf/QPDF_pages.cc b/libqpdf/QPDF_pages.cc index 90d5a09f..a1bede25 100644 --- a/libqpdf/QPDF_pages.cc +++ b/libqpdf/QPDF_pages.cc @@ -107,10 +107,7 @@ QPDF::getAllPagesInternal( } visited.insert(cur_node_og); if (!cur_node.isDictionaryOfType("/Pages")) { - warn( - qpdf_e_damaged_pdf, - "page tree node", - m->file->getLastOffset(), + cur_node.warnIfPossible( "/Type key should be /Pages but is not; overriding"); cur_node.replaceKey("/Type", "/Pages"_qpdf); } @@ -140,10 +137,7 @@ QPDF::getAllPagesInternal( kids.setArrayItem(i, kid); } if (!kid.isDictionaryOfType("/Page")) { - warn( - qpdf_e_damaged_pdf, - "page tree node", - this->m->file->getLastOffset(), + kid.warnIfPossible( "/Type key should be /Page but is not; overriding"); kid.replaceKey("/Type", "/Page"_qpdf); } diff --git a/qpdf/qtest/qpdf/no-pages-types-fix.out b/qpdf/qtest/qpdf/no-pages-types-fix.out index 3a1ee1a2..b3d39593 100644 --- a/qpdf/qtest/qpdf/no-pages-types-fix.out +++ b/qpdf/qtest/qpdf/no-pages-types-fix.out @@ -1,3 +1,3 @@ -WARNING: no-pages-types.pdf (page tree node, offset 307): /Type key should be /Pages but is not; overriding -WARNING: no-pages-types.pdf (page tree node, offset 307): /Type key should be /Page but is not; overriding +WARNING: no-pages-types.pdf, object 2 0 at offset 73: /Type key should be /Pages but is not; overriding +WARNING: no-pages-types.pdf, object 3 0 at offset 145: /Type key should be /Page but is not; overriding qpdf: operation succeeded with warnings; resulting file may have some problems diff --git a/qpdf/qtest/qpdf/no-pages-types.out b/qpdf/qtest/qpdf/no-pages-types.out index a6ef5f68..4f25c2fc 100644 --- a/qpdf/qtest/qpdf/no-pages-types.out +++ b/qpdf/qtest/qpdf/no-pages-types.out @@ -2,6 +2,6 @@ checking no-pages-types.pdf PDF Version: 1.3 File is not encrypted File is not linearized -WARNING: no-pages-types.pdf (page tree node, offset 135): /Type key should be /Pages but is not; overriding -WARNING: no-pages-types.pdf (page tree node, offset 307): /Type key should be /Page but is not; overriding +WARNING: no-pages-types.pdf, object 2 0 at offset 73: /Type key should be /Pages but is not; overriding +WARNING: no-pages-types.pdf, object 3 0 at offset 145: /Type key should be /Page but is not; overriding qpdf: operation succeeded with warnings -- cgit v1.2.3-54-g00ecf