commit 4aaabeca58ebf0d398975b5569610651e451b542
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Aug 1 17:19:17 2021 +0200

    Poppler 21.08.0

 CMakeLists.txt         |  4 ++--
 NEWS                   | 23 +++++++++++++++++++++++
 cpp/Doxyfile           |  2 +-
 qt5/src/Doxyfile       |  2 +-
 qt6/src/CMakeLists.txt |  2 +-
 qt6/src/Doxyfile       |  2 +-
 6 files changed, 29 insertions(+), 6 deletions(-)

commit 76e31d6cefe0404f6d88f249c444ed2318958715
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri Jul 30 00:51:49 2021 +0200

    Update (C)

 poppler/DateInfo.cc         | 2 +-
 poppler/DateInfo.h          | 2 +-
 qt5/src/poppler-document.cc | 2 +-
 qt6/src/poppler-document.cc | 2 +-
 utils/pdfinfo.cc            | 2 +-
 utils/pdftohtml.cc          | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

commit 2636e51212b99359cc940b806d645a9e43c33d74
Author: Adrian Johnson <ajohnson@redneon.com>
Date:   Fri Jul 2 22:09:07 2021 +0930

    Date string may be in unicode

 glib/poppler-document.cc    |  2 +-
 poppler/DateInfo.cc         | 19 ++++++++++++----
 poppler/DateInfo.h          |  2 +-
 qt5/src/poppler-document.cc |  3 ++-
 qt6/src/poppler-document.cc |  3 ++-
 utils/pdfinfo.cc            | 55
 +++++++++++++++++++++------------------------
 utils/pdftohtml.cc          |  3 +--
 7 files changed, 47 insertions(+), 40 deletions(-)

commit fc3afe21523b3fdc3a27254a3ef8139a82d35385
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Thu Jul 15 11:01:33 2021 +0200

    Use additional samples to test for constant parts of an axial gradient

    The method doAxialShFill does adaptive sampling of gradients.
    If the gradient color is found to be the same at two consecutive
    sampling locations then the gradient is concluded to be constant
    between the two locations.

    Of course, this conclusion may be wrong; one instance of this
    happening is

      https://gitlab.freedesktop.org/poppler/poppler/-/issues/938

    This patch fixes rendering of the test file in issue 938 by doing
    one more sampling when a part of the gradient is suspected to be
    constant.  Of course it is easily possible to create gradients
    also misrender with the additional sampling point.  Should such
    gradients ever appear in actual non-synthetic documents the code
    can now easily handle yet more sample points.

    Fixes: https://gitlab.freedesktop.org/poppler/poppler/-/issues/938

 poppler/Gfx.cc | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

commit f35567dc6033cf8f856f5694af058fda2528cbe7
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Jul 19 23:00:27 2021 +0200

    Fix XRef::copy when we have modified objects

 poppler/XRef.cc | 7 +++++++
 1 file changed, 7 insertions(+)

commit ef8c8ca8500ce9de91a5903b8561e3e02a81888e
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Jul 22 17:54:47 2021 +0200

    Support reading the Version from the Catalog

    Fixes #1097

 poppler/Catalog.cc | 11 ++++++++++-
 poppler/Catalog.h  |  8 +++++++-
 poppler/PDFDoc.cc  |  8 ++++----
 poppler/PDFDoc.h   | 27 ++++++++++++++++++++-------
 4 files changed, 41 insertions(+), 13 deletions(-)

commit c61f0c0afdf2ae48db1f0b15cf1cc0023d88c203
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Jul 21 21:44:54 2021 +0200

    GfxCIDFont::getNextChar: Also set ox and oy to 0 on the non cmap case

    Otherwise we may end up using uninitized values

    oss-fuzz/36396

 poppler/GfxFont.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit c85a85423e3fe0c914d0a5b3f3e9e3ba3205fb79
Author: Hib Eris <hib@hiberis.nl>
Date:   Fri Jul 16 15:25:52 2021 +0200

    Validate input from page offset hints table

    Fixes: https://gitlab.freedesktop.org/poppler/poppler/-/issues/343

 poppler/Hints.cc | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

commit 87422fcfc35959235aea74e78bc58a1b1a5c116f
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Jul 18 00:43:22 2021 +0200

    Update (C)

 poppler/Gfx.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 9998ae596bd26cc7b61f176dda0fcee6e1dd346b
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Thu Jul 15 15:46:43 2021 +0200

    Replace a local bubble sort implementation by std::sort

    This makes the code a bit shorter.

 poppler/Gfx.cc | 21 +++------------------
 1 file changed, 3 insertions(+), 18 deletions(-)

commit 3d49757055dbcd2876c0b26ee00a7bd780541938
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Jul 15 22:19:30 2021 +0200

    Update (C)

 qt5/src/poppler-document.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 13c95f251bf47068a3c083bf038cab86fea7f570
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Fri Jul 9 11:55:24 2021 +0200

    Make getPdfVersion return a dedicated version object

    That's a bit more modern than the old way where pointers to two
    integers had to be passed to the method.

    With the new method you can write

      auto pdfVersion = doc->getPdfVersion();
      // access numbers as pdfVersion.major and pdfVersion.minor

    instead of

      int major, minor;
      doc->getPdfVersion(&major, &minor);

    With C++17 you can even write

      auto [major, minor] = doc->getPdfVersion();

    The new method is put alongside the old one in the Qt5 interface.
    It replaces the old one in the Qt6 interface.

 qt5/src/poppler-document.cc      |  5 +++++
 qt5/src/poppler-qt5.h            | 20 +++++++++++++++++++-
 qt5/tests/check_metadata.cpp     |  7 +++----
 qt5/tests/stress-poppler-dir.cpp |  7 +++++--
 qt5/tests/stress-poppler-qt5.cpp |  4 ++--
 qt5/tests/test-password-qt5.cpp  |  5 ++---
 qt5/tests/test-poppler-qt5.cpp   |  5 ++---
 qt6/src/poppler-document.cc      |  7 ++-----
 qt6/src/poppler-qt6.h            | 14 +++++++++-----
 qt6/tests/check_metadata.cpp     |  7 +++----
 qt6/tests/stress-poppler-dir.cpp |  4 ++--
 qt6/tests/stress-poppler-qt6.cpp |  4 ++--
 qt6/tests/test-password-qt6.cpp  |  5 ++---
 qt6/tests/test-poppler-qt6.cpp   |  5 ++---
 14 files changed, 60 insertions(+), 39 deletions(-)

commit fdb83a88ce196413a874c3e0fb6fbd200b56393c
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Mon Jul 5 15:42:44 2021 -0400

    glib: mimick TextSelectionDumper logic change for spaceAfter

    Commit d6cccfb8d814d89c51c9e65563be2e475f46212b caused
    issue #1100 because that change in the TextSelectionDumper
    logic *must be mimicked* in poppler_page_get_text_layout_for_area()
    and in poppler_page_get_text_attributes_for_area() because
    all those functions must be consistent with each other in
    the way they traverse and extract the text from the PDF.

    Otherwise, wrong results may happen when using them
    to map between graphical coordinates of text glyphs and
    their corresponding positions in the text obtained from
    poppler_page_get_text() (which uses TextSelectionDumper
    to extract the text).

    Fixes issue #1100

 glib/poppler-page.cc | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

commit e2f7f5e8eae0cb13d88af4400d68697c6e6bf5ed
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Sat Jul 10 00:13:46 2021 -0400

    Add glib test for issue #1100

 glib/tests/check_text.c | 43 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

commit eea6b4f9caa7555009d959de51acb81037b2a465
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat Jul 10 23:59:35 2021 +0200

    AnnotAppearanceBuilder::drawListBox: Fix memory leak on error
    condition

    oss-fuzz/35996

 poppler/Annot.cc | 3 +++
 1 file changed, 3 insertions(+)

commit 5977890bb79798ec3ad48b9806d760a1d2746990
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Jul 8 23:07:07 2021 +0200

    Update (C)

 qt5/src/poppler-qt5.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ab409a6ec85dc7511dbe8ea6b2e4d7897f36670b
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Thu Jul 8 20:56:49 2021 +0200

    Document that a document has to outlive its pages

    Because the Page objects handed out by Document objects store a
    pointer to the document.  If the Document object is deleted
    before a Page object it handed out, that Page object will have
    a stale pointer.

 qt5/src/poppler-qt5.h | 5 +++++
 qt6/src/poppler-qt6.h | 5 +++++
 2 files changed, 10 insertions(+)

commit 1d23101ccebe14261c6afc024ea14f29d209e760
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Jul 7 01:05:57 2021 +0200

    Update (C)

 poppler/Annot.cc                 | 1 +
 poppler/Annot.h                  | 1 +
 poppler/Catalog.cc               | 1 +
 poppler/Catalog.h                | 1 +
 poppler/Outline.cc               | 1 +
 poppler/Outline.h                | 1 +
 poppler/PDFDoc.cc                | 1 +
 qt5/src/poppler-pdf-converter.cc | 1 +
 qt6/src/poppler-pdf-converter.cc | 1 +
 9 files changed, 9 insertions(+)

commit fa494b780ab69ef04ba7447ab6d8fc3b46373e59
Author: RM <rm+git@arcsin.org>
Date:   Mon May 3 12:22:16 2021 -0400

    Modify internal API to allow addition and modification of outlines
    into a PDF. Tests in the qt5/qt6 directories.

    duplicate qt5 outline test in qt6 directory

 poppler/Catalog.cc                   |  37 +++
 poppler/Catalog.h                    |   2 +
 poppler/Outline.cc                   | 469
 +++++++++++++++++++++++++++++++++--
 poppler/Outline.h                    |  62 +++--
 poppler/PDFDoc.cc                    |   2 +-
 qt5/tests/CMakeLists.txt             |   1 +
 qt5/tests/check_internal_outline.cpp | 436
 ++++++++++++++++++++++++++++++++
 qt6/tests/CMakeLists.txt             |   1 +
 qt6/tests/check_internal_outline.cpp | 436
 ++++++++++++++++++++++++++++++++
 9 files changed, 1402 insertions(+), 44 deletions(-)

commit e674ca6453f3f20c4bf0cb463222a97c99221dd6
Author: Zachary Travis <ztravis@everlaw.com>
Date:   Tue Jul 6 22:53:22 2021 +0000

    Create fallback fonts as needed.

    If a PDF form field value uses a font that is not in the resources
    dictionary, a warning is logged and the field value is ignored/not
    displayed. It's unclear whether this behavior is strictly valid based
    on the PDF spec (since typically font references, even to base fonts,
    require a corresponding font dictionary) but Acrobat seems to display
    the content anyway.

 poppler/Annot.cc                 | 126
 +++++++++++++++++++--------------------
 poppler/Annot.h                  |  17 +++---
 qt5/src/poppler-pdf-converter.cc |   4 +-
 qt6/src/poppler-pdf-converter.cc |   4 +-
 4 files changed, 71 insertions(+), 80 deletions(-)

commit f2a6c6fe06ba2279f8509c56a11d649f02d1500c
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Jul 4 22:02:08 2021 +0200

    JBIG2Stream: Fix regression caused by
    2b2808719d2c91283ae358381391bb0b37d9061d

 poppler/JBIG2Stream.cc | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

commit fcdff7bb19e2ac0fab6505f17e0c18c8faa86323
Author: Uli Schlachter <psychon@znc.in>
Date:   Thu Jul 1 16:20:39 2021 +0200

    Better error messages when libopenjpeg2 is not found

    When I run "cmake -DENABLE_DCTDECODER=none -DENABLE_BOOST=OFF" on my
    system, I get the following output:

        -- Found Iconv: /usr/lib/x86_64-linux-gnu/libc.so
        CMake Warning at CMakeLists.txt:252 (find_package):
          By not providing "FindOpenJPEG.cmake" in CMAKE_MODULE_PATH
          this project has
          asked CMake to find a package configuration file provided by
          "OpenJPEG",
          but CMake did not find one.

          Could not find a package configuration file provided by
          "OpenJPEG" with any
          of the following names:

            OpenJPEGConfig.cmake
            openjpeg-config.cmake

          Add the installation prefix of "OpenJPEG" to CMAKE_PREFIX_PATH
          or set
          "OpenJPEG_DIR" to a directory containing one of the above
          files.  If
          "OpenJPEG" provides a separate development package or SDK,
          be sure it has
          been installed.

        CMake Error at CMakeLists.txt:255 (message):
          Install libopenjpeg2 before trying to build poppler.  You can
          also decide
          to use the internal unmaintained JPX decoder or none at all.

        -- Configuring incomplete, errors occurred!
        See also "/tmp/poppler/build/CMakeFiles/CMakeOutput.log".
        See also "/tmp/poppler/build/CMakeFiles/CMakeError.log".

    To figure out what exactly to do now, I have to read some
    CMakeLists.txt. This commit improves the situation by producing the
    following output instead:

        -- Found Iconv: /usr/lib/x86_64-linux-gnu/libc.so
        CMake Warning at CMakeLists.txt:254 (find_package):
          By not providing "FindOpenJPEG.cmake" in CMAKE_MODULE_PATH
          this project has
          asked CMake to find a package configuration file provided by
          "OpenJPEG",
          but CMake did not find one.

          Could not find a package configuration file provided by
          "OpenJPEG" with any
          of the following names:

            OpenJPEGConfig.cmake
            openjpeg-config.cmake

          Add the installation prefix of "OpenJPEG" to CMAKE_PREFIX_PATH
          or set
          "OpenJPEG_DIR" to a directory containing one of the above
          files.  If
          "OpenJPEG" provides a separate development package or SDK,
          be sure it has
          been installed.

        -- Could NOT find openjpeg2.
        CMake Error at CMakeLists.txt:258 (message):
          Install libopenjpeg2 before trying to build poppler.  You can
          also decide
          to use the internal unmaintained JPX decoder or none at all.

          Possible options are: -DENABLE_LIBOPENJPEG=openjpeg2,
          -DENABLE_LIBOPENJPEG=none, -DENABLE_LIBOPENJPEG=unmaintained,

        -- Configuring incomplete, errors occurred!
        See also "/tmp/poppler/build/CMakeFiles/CMakeOutput.log".
        See also "/tmp/poppler/build/CMakeFiles/CMakeError.log".

    Signed-off-by: Uli Schlachter <psychon@znc.in>

 CMakeLists.txt | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 27ea06e3443ff0cc2250b26e5f3f170a6f531568
Author: Uli Schlachter <psychon@znc.in>
Date:   Thu Jul 1 16:20:33 2021 +0200

    Better error message when libjpeg is not found

    When I run cmake on my system, I get the following output:

        -- Checking for module 'nss>=3.19'
        --   Package 'nss', required by 'virtual:world', not found
        -- Could NOT find NSS3 (missing: NSS3_LIBRARIES NSS3_CFLAGS)
        CMake Error at CMakeLists.txt:149 (message):
          Install libjpeg before trying to build poppler.  You can also
          decide to use
          the internal unmaintained DCT decoder or none at all.

        -- Configuring incomplete, errors occurred!
        See also "/tmp/poppler/build/CMakeFiles/CMakeOutput.log".
        See also "/tmp/poppler/build/CMakeFiles/CMakeError.log".

    Being (badly) trained in CMake errors, I see "Could NOT find NSS3" and
    conclude that this is the problem. I do not even read the actual error
    message.

    This commit improves the situation by producing the following output
    instead:

        -- Checking for module 'nss>=3.19'
        --   Package 'nss', required by 'virtual:world', not found
        -- Could NOT find NSS3 (missing: NSS3_LIBRARIES NSS3_CFLAGS)
        -- Could NOT find libjpeg.
        CMake Error at CMakeLists.txt:150 (message):
          Install libjpeg before trying to build poppler.  You can also
          decide to use
          the internal unmaintained DCT decoder or none at all.

          Possible options are: -DENABLE_DCTDECODER=libjpeg,
          -DENABLE_DCTDECODER=none, -DENABLE_DCTDECODER=unmaintained

        -- Configuring incomplete, errors occurred!
        See also "/tmp/poppler/build/CMakeFiles/CMakeOutput.log".
        See also "/tmp/poppler/build/CMakeFiles/CMakeError.log".

    This also explicitly lists the possible values for the parameter
    that I
    figured out by reading the code around CMakeLists.txt:151.

    Signed-off-by: Uli Schlachter <psychon@znc.in>

 CMakeLists.txt | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

commit 77e545351b7ac359e19422e8158ff00f6dd597d3
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri Jul 2 23:07:57 2021 +0200

    poppler 21.07.0

 CMakeLists.txt   |  4 ++--
 NEWS             | 10 ++++++++++
 cpp/Doxyfile     |  2 +-
 qt5/src/Doxyfile |  2 +-
 qt6/src/Doxyfile |  2 +-
 5 files changed, 15 insertions(+), 5 deletions(-)

commit a822ba0e4f7240309eaa180230facbceb6d0e08a
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri Jul 2 23:03:23 2021 +0200

    Update (C)

 poppler/CairoOutputDev.cc | 1 +
 1 file changed, 1 insertion(+)

commit 2b2808719d2c91283ae358381391bb0b37d9061d
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Thu Jul 1 21:35:38 2021 +0200

    JBIG2Stream: Do not abort if size-0 allocations returns nullptr

    The JBIG2SymbolDict constructor gets a size parameter, and it
    allocates
    memory for a bitmap of that size.  Bug report 535

      https://gitlab.freedesktop.org/poppler/poppler/-/issues/535

    has a file where this size is 0.  In that case, the call to
    gmallocn_checkoverflow returns nullptr, and subsequent calls to
    JBIG2SymbolDict::isOk return false.  This is then interpreted
    as an error, and the JBIG2 processing is aborted.  For the
    test file mentioned above this happens in line 1807.

    I don't know whether such a file with a size-0 symbol dict
    is malformed or not.  However, the test file renders just fine
    if the 'failing' allocation is simply ignored.  This patch
    therefore relaxes the isOk method a little.  A JBIG2SymbolDict
    object is now deemed 'ok' either if it holds a bitmap (that was
    the previous test) *or if it has size 0*.

    This fixes

      https://gitlab.freedesktop.org/poppler/poppler/-/issues/535

 poppler/JBIG2Stream.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 571d8138cb9ccc9ac04219a6a552d8c78e93ad88
Author: Uli Schlachter <psychon@znc.in>
Date:   Sat Jun 26 12:00:50 2021 +0200

    ~CairoOutputDev(): Free textClipPath

    The textClipPath member is set in CairoOutputDev::endString()
    and freed
    in CairoOutputDev::endTextObject(). However, if endTextObject() is not
    called for whatever reason, the path will just be leaked.

    This adds code to the destructor to free this.

    This fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32326

    Testing done:

    $ wget -O testcase
    'https://oss-fuzz.com/download?testcase_id=6659952325296128'
    [...]
    $ cmake .. -G Ninja -DENABLE_DCTDECODER=unmaintained
    -DENABLE_BOOST=OFF -DENABLE_LIBOPENJPEG=unmaintained && ninja
    [...]
    $ git describe
    poppler-21.06.1-5-gb7c40059
    $ valgrind --leak-check=full ./utils/pdftocairo testcase -png foo
    [...]
    ==104075==
    ==104075== HEAP SUMMARY:
    ==104075==     in use at exit: 28,292 bytes in 55 blocks
    ==104075==   total heap usage: 6,114 allocs, 6,059 frees, 1,617,444
    bytes allocated
    ==104075==
    ==104075== 24 bytes in 1 blocks are definitely lost in loss record
    4 of 37
    ==104075==    at 0x483877F: malloc (in
    /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==104075==    by 0x48AE748: ??? (in
    /usr/lib/x86_64-linux-gnu/libcairo.so.2.11600.0)
    ==104075==    by 0x118995: endString (CairoOutputDev.cc:1474)
    ==104075==    by 0x118995: CairoOutputDev::endString(GfxState*)
    (CairoOutputDev.cc:1412)
    ==104075==    by 0x4B97295: Gfx::doShowText(GooString const*)
    (Gfx.cc:4010)
    ==104075==    by 0x4B97CB4: Gfx::opShowSpaceText(Object*, int)
    (Gfx.cc:3793)
    ==104075==    by 0x4B8D866: Gfx::go(bool) (Gfx.cc:681)
    ==104075==    by 0x4B8DCFA: display (Gfx.cc:642)
    ==104075==    by 0x4B8DCFA: Gfx::display(Object*, bool) (Gfx.cc:622)
    ==104075==    by 0x4BE1A83: Page::displaySlice(OutputDev*, double,
    double, int, bool, bool, int, int, int, int, bool, bool (*)(void*),
    void*, bool (*)(Annot*, void*), void*, bool) (Page.cc:576)
    ==104075==    by 0x11317C: renderPage (pdftocairo.cc:669)
    ==104075==    by 0x11317C: main (pdftocairo.cc:1183)
    ==104075==
    ==104075== LEAK SUMMARY:
    ==104075==    definitely lost: 24 bytes in 1 blocks
    ==104075==    indirectly lost: 0 bytes in 0 blocks
    ==104075==      possibly lost: 0 bytes in 0 blocks
    ==104075==    still reachable: 28,268 bytes in 54 blocks
    ==104075==         suppressed: 0 bytes in 0 blocks
    ==104075== Reachable blocks (those to which a pointer was found)
    are not shown.
    ==104075== To see them, rerun with: --leak-check=full
    --show-leak-kinds=all
    ==104075==
    ==104075== For lists of detected and suppressed errors, rerun with: -s
    ==104075== ERROR SUMMARY: 1 errors from 1 contexts (suppressed:
    0 from 0)
    $ git checkout cairo-leak-textClipPath && git describe && ninja
    Zu Branch 'cairo-leak-textClipPath' gewechselt
    poppler-21.06.1-6-g8df6f8d2
    $ valgrind --leak-check=full ./utils/pdftocairo testcase -png foo
    [...]
    ==104263==
    ==104263== HEAP SUMMARY:
    ==104263==     in use at exit: 28,268 bytes in 54 blocks
    ==104263==   total heap usage: 6,114 allocs, 6,060 frees, 1,617,444
    bytes allocated
    ==104263==
    ==104263== LEAK SUMMARY:
    ==104263==    definitely lost: 0 bytes in 0 blocks
    ==104263==    indirectly lost: 0 bytes in 0 blocks
    ==104263==      possibly lost: 0 bytes in 0 blocks
    ==104263==    still reachable: 28,268 bytes in 54 blocks
    ==104263==         suppressed: 0 bytes in 0 blocks
    ==104263== Reachable blocks (those to which a pointer was found)
    are not shown.
    ==104263== To see them, rerun with: --leak-check=full
    --show-leak-kinds=all
    ==104263==
    ==104263== For lists of detected and suppressed errors, rerun with: -s
    ==104263== ERROR SUMMARY: 0 errors from 0 contexts (suppressed:
    0 from 0)

    As you (might) see, before this commit, there is a "definitely lost"
    leak of 24 bytes with this test case. After this commit, this leak is
    gone.

    Signed-off-by: Uli Schlachter <psychon@znc.in>

 poppler/CairoOutputDev.cc | 4 ++++
 1 file changed, 4 insertions(+)

commit c11fbf5a732a041a26359dc7fef103ac44a2346f
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Jun 27 00:47:48 2021 +0200

    cmake: set C standard to 11 without extensions

 CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

commit b7c400592b5b08d4759b6c45bdd4ff87af75fe46
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Jun 16 23:03:24 2021 +0200

    Update (C) of previous commits

 cpp/poppler-page-renderer.cpp | 1 +
 poppler/PSOutputDev.cc        | 3 ++-
 poppler/PSOutputDev.h         | 1 +
 poppler/Stream.cc             | 1 +
 poppler/Stream.h              | 1 +
 qt5/src/poppler-document.cc   | 1 +
 qt5/src/poppler-page.cc       | 1 +
 qt5/src/poppler-private.h     | 1 +
 qt6/src/poppler-document.cc   | 1 +
 qt6/src/poppler-page.cc       | 1 +
 qt6/src/poppler-private.h     | 1 +
 utils/pdftohtml.cc            | 1 +
 utils/pdftops.cc              | 1 +
 13 files changed, 14 insertions(+), 1 deletion(-)

commit ce0bd9bf6f41fb058519c99128205da569d83b7c
Author: Hubert Figuiere <hub@figuiere.net>
Date:   Wed Jun 16 20:50:49 2021 +0000

    Remove ENABLE_SPLASH and HAVE_SPLASH (always true)

 CMakeLists.txt                 | 117
 +++++++++++++++++------------------------
 INSTALL                        |   2 +-
 cpp/poppler-page-renderer.cpp  |  18 +------
 poppler/PSOutputDev.cc         |  37 ++++---------
 poppler/PSOutputDev.h          |  10 +---
 poppler/Stream.cc              |   6 +--
 poppler/Stream.h               |   4 --
 poppler/poppler-config.h.cmake |   5 --
 qt5/src/poppler-document.cc    |   2 -
 qt5/src/poppler-page.cc        |  12 ++---
 qt5/src/poppler-private.h      |   4 +-
 qt6/src/poppler-document.cc    |   2 -
 qt6/src/poppler-page.cc        |  12 ++---
 qt6/src/poppler-private.h      |   4 +-
 test/CMakeLists.txt            |  22 ++++----
 utils/CMakeLists.txt           |  26 +++++----
 utils/pdftohtml.cc             |  19 +------
 utils/pdftops.cc               |  24 ++-------
 18 files changed, 102 insertions(+), 224 deletions(-)

commit 77eb02c23be27ce66b7f99bcd136356e20a0a12d
Author: Philipp Knechtges <philipp-dev@knechtges.com>
Date:   Sat Jun 12 22:16:43 2021 +0200

    PSOutputDev: fix off-by-one error for image masking in L1/L2 output

    Fixes issue #1088

 poppler/PSOutputDev.cc | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

commit 557b86db954d2cbcb9665cec0ea6edb7b0da9e75
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Jun 14 21:53:09 2021 +0200

    Form: make sure quadding has a valid value

 poppler/Form.cc | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

commit 9bcf967b5eadee7c36b32d1595c884c3130339a1
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Jun 15 00:37:54 2021 +0200

    CI: switch mingw CI to fedora 33

    fedora 34 is giving weird errors around libjpeg

 .gitlab-ci.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

commit b782d4be006c184c49c6b46bec1d23dd28f1683a
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Jun 3 22:42:20 2021 +0200

    poppler 21.06.1

 CMakeLists.txt   | 2 +-
 NEWS             | 4 ++++
 cpp/Doxyfile     | 2 +-
 qt5/src/Doxyfile | 2 +-
 qt6/src/Doxyfile | 2 +-
 5 files changed, 8 insertions(+), 4 deletions(-)

commit b9314b06c7e458f26e7ca0d55b071f4eb1dced58
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Wed Jun 2 15:25:47 2021 +0100

    glib: fix poppler_rectangle_free() regression

    Regression from e3fed321f230a4a91df873e6d9a213ba8dad6694

    Fixes issue #1087

 glib/poppler-page.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

commit 07edd3d3933549578f91f5744ea5d82feadeb3f6
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Jun 1 23:07:40 2021 +0200

    poppler 21.06.0

 CMakeLists.txt         |  4 ++--
 NEWS                   | 20 ++++++++++++++++++++
 cpp/Doxyfile           |  2 +-
 qt5/src/CMakeLists.txt |  2 +-
 qt5/src/Doxyfile       |  2 +-
 qt6/src/CMakeLists.txt |  2 +-
 qt6/src/Doxyfile       |  2 +-
 7 files changed, 27 insertions(+), 7 deletions(-)

commit b4146c1bb021b48dba20ee343d8c3058ba4d756c
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun May 30 00:14:52 2021 +0200

    Move the ownerKey/userKey padding to the correct place

 poppler/SecurityHandler.cc | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

commit dc587846bff99b07dc351d2d21e5b6908c99afdb
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat May 29 01:31:02 2021 +0200

    pad ownerKey/userKey if < 32

    Inspired by xpdf

 poppler/SecurityHandler.cc | 11 +++++++++++
 1 file changed, 11 insertions(+)

commit 9293e4bf9f6fa6513ddd51fe3426c39b54b1a49d
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu May 27 23:30:46 2021 +0200

    Don't force ownerKey and userKey to be exacly 32 chars long

    The spec says that they have to be this long, but then when
    calculating
    the hashes says "if it is longer, cut it, if it is shorter, add these
    characters" (and we implement that) so it's a bit of spec mismatch.

    Fixes issue #1083

 poppler/SecurityHandler.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit c59a6ffe3d4168d40e8ee95801c09069a32c34d4
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue May 25 23:59:30 2021 +0200

    uintx -> uintx_t

    The non _t types were provided by libtiff and are now deprecated

 goo/TiffWriter.cc | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

commit 9700352e67fc35d3202a39b7dd593485d01d175d
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue May 25 23:11:00 2021 +0200

    Update (C) of last commit

 poppler/SecurityHandler.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit ed802a62ef42e7e19d632278c2ccb405c9db1a24
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue May 25 11:41:27 2021 +0200

    Be a bit more verbose when we think Invalid encryption key length
    is wrong

 poppler/SecurityHandler.cc | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

commit ad785d73c400a7681511b13ccd5d6de4b6cfa360
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu May 20 22:40:00 2021 +0200

    Update (C)

 qt6/demos/documentobserver.cpp       | 1 +
 qt6/demos/pageview.cpp               | 1 +
 qt6/demos/thumbnails.cpp             | 1 +
 qt6/demos/viewer.cpp                 | 2 +-
 qt6/demos/viewer.h                   | 1 +
 qt6/src/poppler-annotation-private.h | 1 +
 qt6/src/poppler-annotation.h         | 1 +
 qt6/src/poppler-document.cc          | 2 +-
 qt6/src/poppler-link-private.h       | 2 +-
 qt6/src/poppler-page-private.h       | 1 +
 qt6/src/poppler-page.cc              | 3 +--
 qt6/src/poppler-private.h            | 2 +-
 12 files changed, 12 insertions(+), 6 deletions(-)

commit 8f9115bf4475866eef160af06d17bcd0087cdaed
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri May 14 21:05:04 2021 +0200

    Remove OutlineItem::close

    It was only used in the Outline destructor and in HtmlOutputDev but
    there it was kind of pointless

 poppler/Outline.cc     | 20 +++++++-------------
 poppler/Outline.h      |  3 +--
 utils/HtmlOutputDev.cc |  2 --
 3 files changed, 8 insertions(+), 17 deletions(-)

commit 90bcd4967e82534f3c141c2c14cf292d6813bbd8
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu May 20 14:21:24 2021 +0200

    Cast to the actual type we're storing in

    Fixes a warning in gcc 11

 poppler/Form.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 45717a50c52ab13f405584eab4e1c586bd39a0ce
Author: Oliver Sander <oliver.sander@tu-dresden.de>
Date:   Wed May 19 21:58:33 2021 +0000

    Use std::unique_ptr in the Qt6 interface

 qt6/demos/documentobserver.cpp           |   2 +-
 qt6/demos/pageview.cpp                   |   3 +-
 qt6/demos/thumbnails.cpp                 |   3 +-
 qt6/demos/viewer.cpp                     |  15 ++---
 qt6/demos/viewer.h                       |   4 +-
 qt6/src/poppler-annotation-private.h     |   6 +-
 qt6/src/poppler-annotation.cc            |  92
 +++++++++++++--------------
 qt6/src/poppler-annotation.h             |  15 ++---
 qt6/src/poppler-document.cc              |  46 +++++++-------
 qt6/src/poppler-form.cc                  |  28 ++++----
 qt6/src/poppler-form.h                   |   8 +--
 qt6/src/poppler-link-extractor-private.h |   8 ++-
 qt6/src/poppler-link-extractor.cc        |  16 ++---
 qt6/src/poppler-link-private.h           |   2 +-
 qt6/src/poppler-link.cc                  |  14 ++--
 qt6/src/poppler-link.h                   |   4 +-
 qt6/src/poppler-page-private.h           |   4 +-
 qt6/src/poppler-page.cc                  | 106
 +++++++++++++++----------------
 qt6/src/poppler-private.h                |   2 +-
 qt6/src/poppler-qt6.h                    |  94
 ++++++++++-----------------
 qt6/tests/check_actualtext.cpp           |  22 ++-----
 qt6/tests/check_annotations.cpp          |  27 +++-----
 qt6/tests/check_attachments.cpp          |  27 ++------
 qt6/tests/check_fonts.cpp                |  63 ++++++------------
 qt6/tests/check_forms.cpp                |  68 ++++++++++----------
 qt6/tests/check_links.cpp                |  64 +++++++------------
 qt6/tests/check_metadata.cpp             |  91 ++++++--------------------
 qt6/tests/check_optcontent.cpp           |  20 ++----
 qt6/tests/check_pagelayout.cpp           |  15 +----
 qt6/tests/check_pagemode.cpp             |  25 ++------
 qt6/tests/check_password.cpp             |  40 +++---------
 qt6/tests/check_permissions.cpp          |   5 +-
 qt6/tests/check_search.cpp               |  30 ++++-----
 qt6/tests/check_stroke_opacity.cpp       |   2 +-
 qt6/tests/poppler-attachments.cpp        |   3 +-
 qt6/tests/poppler-fonts.cpp              |   3 +-
 qt6/tests/poppler-forms.cpp              |  19 +++---
 qt6/tests/poppler-page-labels.cpp        |   3 +-
 qt6/tests/poppler-texts.cpp              |   6 +-
 qt6/tests/stress-poppler-dir.cpp         |   7 +-
 qt6/tests/stress-poppler-qt6.cpp         |   6 +-
 qt6/tests/stress-threads-qt6.cpp         |  47 ++++++--------
 qt6/tests/test-password-qt6.cpp          |  22 +++----
 qt6/tests/test-poppler-qt6.cpp           |  36 ++++-------
 qt6/tests/test-render-to-file.cpp        |   6 +-
 45 files changed, 433 insertions(+), 696 deletions(-)

commit a89965b44f6a8b1bdf05d36380b9f883877fbdd2
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sat May 15 00:26:42 2021 +0200

    Update (C)

 poppler/PDFDoc.cc           | 1 +
 poppler/PDFDoc.h            | 1 +
 poppler/XRef.cc             | 1 +
 poppler/XRef.h              | 1 +
 qt5/demos/viewer.cpp        | 1 +
 qt5/demos/viewer.h          | 1 +
 qt5/src/poppler-document.cc | 1 +
 qt5/src/poppler-private.cc  | 1 +
 qt5/src/poppler-private.h   | 1 +
 qt5/src/poppler-qt5.h       | 1 +
 qt6/demos/viewer.cpp        | 1 +
 qt6/demos/viewer.h          | 1 +
 qt6/src/poppler-document.cc | 1 +
 qt6/src/poppler-private.cc  | 1 +
 qt6/src/poppler-private.h   | 1 +
 qt6/src/poppler-qt6.h       | 1 +
 16 files changed, 16 insertions(+)

commit 2254e62a7e2fe3a4144251e47c7578ce3b717bc9
Author: Mahmoud Khalil <mahmoudkhalil11@gmail.com>
Date:   Wed Jan 27 21:14:57 2021 +0200

    Provides the `wasReconstructed` value to caller

    Modifies the Poppler backend library to call a callback method
    submitted
    by callers in case a XRef reconstruction occurs, as well as, providing
    an API for setting the callback from the qt5/qt6 frontend so that
    users
    be able to set callback and check whether it has already happened or
    not.

    FIXES #416

 poppler/PDFDoc.cc           | 20 ++++++++++----------
 poppler/PDFDoc.h            |  8 ++++----
 poppler/XRef.cc             |  8 +++++++-
 poppler/XRef.h              |  5 ++++-
 qt5/demos/viewer.cpp        | 21 +++++++++++++++++++++
 qt5/demos/viewer.h          |  2 ++
 qt5/src/poppler-document.cc | 10 ++++++++++
 qt5/src/poppler-private.cc  | 13 +++++++++++++
 qt5/src/poppler-private.h   | 19 +++++++++++++++----
 qt5/src/poppler-qt5.h       | 17 +++++++++++++++++
 qt6/demos/viewer.cpp        | 21 +++++++++++++++++++++
 qt6/demos/viewer.h          |  2 ++
 qt6/src/poppler-document.cc | 10 ++++++++++
 qt6/src/poppler-private.cc  | 13 +++++++++++++
 qt6/src/poppler-private.h   | 19 +++++++++++++++----
 qt6/src/poppler-qt6.h       | 17 +++++++++++++++++
 16 files changed, 181 insertions(+), 24 deletions(-)

commit 541e7778520bb99bd4c07ffcf62143ee3de406ff
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri May 14 21:32:44 2021 +0200

    Mark two Stream::isFoo functions as const

 poppler/DCTStream.cc      |  4 ++--
 poppler/DCTStream.h       |  4 ++--
 poppler/Decrypt.cc        |  4 ++--
 poppler/Decrypt.h         |  4 ++--
 poppler/FlateEncoder.h    |  6 ++---
 poppler/FlateStream.cc    |  4 ++--
 poppler/FlateStream.h     |  4 ++--
 poppler/JBIG2Stream.cc    |  2 +-
 poppler/JBIG2Stream.h     |  4 ++--
 poppler/JPEG2000Stream.cc |  2 +-
 poppler/JPEG2000Stream.h  |  4 ++--
 poppler/JPXStream.cc      |  4 ++--
 poppler/JPXStream.h       |  4 ++--
 poppler/PSOutputDev.cc    |  4 ++--
 poppler/Stream.cc         | 20 ++++++++--------
