From 2538d84413ac574f6f8bcb9dfcc84254a11fa75d Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Wed, 10 Feb 2021 15:02:11 -0500 Subject: [PATCH] Explicitly deprecate old name/number tree constructors Use C++14 [[deprecated]] tag --- include/qpdf/QPDFNameTreeObjectHelper.hh | 1 + include/qpdf/QPDFNumberTreeObjectHelper.hh | 1 + qpdf/test_driver.cc | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/include/qpdf/QPDFNameTreeObjectHelper.hh b/include/qpdf/QPDFNameTreeObjectHelper.hh index c2430adb..cc6ad0d7 100644 --- a/include/qpdf/QPDFNameTreeObjectHelper.hh +++ b/include/qpdf/QPDFNameTreeObjectHelper.hh @@ -55,6 +55,7 @@ class QPDFNameTreeObjectHelper: public QPDFObjectHelper // QPDFNameTreeObjectHelper constructed in this way can't be // modified or repaired and will silently ignore problems in the // structure. + [[deprecated]] QPDF_DLL QPDFNameTreeObjectHelper(QPDFObjectHandle); diff --git a/include/qpdf/QPDFNumberTreeObjectHelper.hh b/include/qpdf/QPDFNumberTreeObjectHelper.hh index dff7ad70..4a3b4f9d 100644 --- a/include/qpdf/QPDFNumberTreeObjectHelper.hh +++ b/include/qpdf/QPDFNumberTreeObjectHelper.hh @@ -52,6 +52,7 @@ class QPDFNumberTreeObjectHelper: public QPDFObjectHelper // QPDFNumberTreeObjectHelper constructed in this way can't be // modified or repaired and will silently ignore problems in the // structure. + [[deprecated]] QPDF_DLL QPDFNumberTreeObjectHelper(QPDFObjectHandle); diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc index e7e12834..6f704987 100644 --- a/qpdf/test_driver.cc +++ b/qpdf/test_driver.cc @@ -1856,8 +1856,18 @@ void runtest(int n, char const* filename1, char const* arg2) // Exercise deprecated API until qpdf 11 std::cout << "/Bad1: deprecated API" << std::endl; +#ifdef _MSC_VER +# pragma warning (disable: 4996) +#endif +#if (defined(__GNUC__) || defined(__clang__)) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif auto bad1 = QPDFNumberTreeObjectHelper( pdf.getTrailer().getKey("/Bad1")); +#if (defined(__GNUC__) || defined(__clang__)) +# pragma GCC diagnostic pop +#endif assert(bad1.begin() == bad1.end()); std::cout << "/Bad1" << std::endl; @@ -2058,8 +2068,18 @@ void runtest(int n, char const* filename1, char const* arg2) // Exercise deprecated API until qpdf 11 std::cout << "/Bad1: deprecated API" << std::endl; +#ifdef _MSC_VER +# pragma warning (disable: 4996) +#endif +#if (defined(__GNUC__) || defined(__clang__)) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif auto bad1 = QPDFNameTreeObjectHelper( pdf.getTrailer().getKey("/Bad1")); +#if (defined(__GNUC__) || defined(__clang__)) +# pragma GCC diagnostic pop +#endif try { bad1.find("G", true);