commit 0aa1fe5c30a6c467c91bad8d81bd6c2f57fcb726
Author: Albert Astals Cid <aacid@kde.org>
Date:   Mon Apr 1 09:49:15 2024 +0200

    poppler 24.04.0

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

commit 199ccde44be1879bf5caa8bcbc050c1ef0327849
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Sat Mar 9 00:48:59 2024 +0000

    reset clipping path when the state is restored

    According to the specification, see NOTE 2 in
    https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandards/PDF32000_2008.pdf#G7.3882161

    it appears that the clipping path should be reset
    when the restore (Q) operator is encountered.

    Fixes #739

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

commit 0d5431dba10c531b6e6897e088c1c6ccec84ef55
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Mar 31 17:50:50 2024 +0200

    CI: Update the hack to change c++ standard to 23 in the clang build

 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit d8ae3ba659c71b4f5913ecf74d525461bb831366
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Feb 4 14:06:00 2024 +0100

    Require C++20

    I want to use std::string::starts_with

 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 1446d1fd2186e6573e737406c02a54c36fe1ad71
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Mar 31 17:12:43 2024 +0200

    CI: Use Fedora for clazy, it's newer and built against a newer clang

 .gitlab-ci.yml             | 10 +++++++---
 poppler/FlateEncoder.cc    |  2 +-
 qt6/tests/check_search.cpp |  4 ++--
 3 files changed, 10 insertions(+), 6 deletions(-)

commit 80e0519077f74e2591d45e70801f6c3f2fe2c362
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Mar 31 17:02:34 2024 +0200

    qt: Include less files

 qt5/tests/check_actualtext.cpp                | 2 +-
 qt5/tests/check_annotations.cpp               | 2 +-
 qt5/tests/check_attachments.cpp               | 2 +-
 qt5/tests/check_cidfontswidthsbuilder.cpp     | 2 +-
 qt5/tests/check_dateConversion.cpp            | 2 +-
 qt5/tests/check_distinguished_name_parser.cpp | 2 +-
 qt5/tests/check_fonts.cpp                     | 2 +-
 qt5/tests/check_forms.cpp                     | 2 +-
 qt5/tests/check_goostring.cpp                 | 2 +-
 qt5/tests/check_internal_outline.cpp          | 3 ++-
 qt5/tests/check_lexer.cpp                     | 2 +-
 qt5/tests/check_links.cpp                     | 2 +-
 qt5/tests/check_metadata.cpp                  | 2 +-
 qt5/tests/check_object.cpp                    | 2 +-
 qt5/tests/check_optcontent.cpp                | 2 +-
 qt5/tests/check_outline.cpp                   | 2 +-
 qt5/tests/check_overprint.cpp                 | 2 +-
 qt5/tests/check_pagelabelinfo.cpp             | 2 +-
 qt5/tests/check_pagelayout.cpp                | 2 +-
 qt5/tests/check_pagemode.cpp                  | 2 +-
 qt5/tests/check_password.cpp                  | 2 +-
 qt5/tests/check_permissions.cpp               | 2 +-
 qt5/tests/check_search.cpp                    | 2 +-
 qt5/tests/check_signature_basics.cpp          | 2 +-
 qt5/tests/check_strings.cpp                   | 2 +-
 qt5/tests/check_stroke_opacity.cpp            | 2 +-
 qt5/tests/check_utf8document.cpp              | 2 +-
 qt5/tests/check_utf_conversion.cpp            | 2 +-
 qt6/tests/check_actualtext.cpp                | 2 +-
 qt6/tests/check_annotations.cpp               | 2 +-
 qt6/tests/check_attachments.cpp               | 2 +-
 qt6/tests/check_cidfontswidthsbuilder.cpp     | 2 +-
 qt6/tests/check_dateConversion.cpp            | 2 +-
 qt6/tests/check_distinguished_name_parser.cpp | 2 +-
 qt6/tests/check_fonts.cpp                     | 2 +-
 qt6/tests/check_forms.cpp                     | 2 +-
 qt6/tests/check_goostring.cpp                 | 2 +-
 qt6/tests/check_internal_outline.cpp          | 3 ++-
 qt6/tests/check_lexer.cpp                     | 2 +-
 qt6/tests/check_links.cpp                     | 2 +-
 qt6/tests/check_metadata.cpp                  | 2 +-
 qt6/tests/check_object.cpp                    | 2 +-
 qt6/tests/check_optcontent.cpp                | 2 +-
 qt6/tests/check_outline.cpp                   | 2 +-
 qt6/tests/check_overprint.cpp                 | 2 +-
 qt6/tests/check_pagelabelinfo.cpp             | 2 +-
 qt6/tests/check_pagelayout.cpp                | 2 +-
 qt6/tests/check_pagemode.cpp                  | 2 +-
 qt6/tests/check_password.cpp                  | 2 +-
 qt6/tests/check_permissions.cpp               | 2 +-
 qt6/tests/check_search.cpp                    | 2 +-
 qt6/tests/check_signature_basics.cpp          | 2 +-
 qt6/tests/check_strings.cpp                   | 2 +-
 qt6/tests/check_stroke_opacity.cpp            | 2 +-
 qt6/tests/check_utf8document.cpp              | 2 +-
 qt6/tests/check_utf_conversion.cpp            | 2 +-
 56 files changed, 58 insertions(+), 56 deletions(-)

commit ec2427b7cb92cda6cd7bc9b1d3117552a65d518e
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Mar 31 16:32:36 2024 +0200

    CI: Use fedora 40

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

commit d7e54f88c981f26b9477b2330070dccbdbbbdb55
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Mar 31 11:42:11 2024 +0200

    Update (C)

 poppler/TextOutputDev.cc | 3 ++-
 poppler/TextOutputDev.h  | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

commit f26b292412a9266aab46deb2ce1ffc4d016cc573
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Thu Mar 28 02:37:09 2024 +0100

    Reduce worst case algorithmic complexity of TextBlock::coalesce

    The old algorithm restarts the inner loop for the RHS word from the
    beginning on each match, i.e. the worst case complexity approaches
    O(N^3), while O(N^2) is obviously sufficient for a pairwise compare of
    all words. Fortunately, O(N^2) is hardly ever happening, as the
    inner N
    is limited by a) the maxBaseIdx, b) removing duplicates from the set.

    For some pathological cases this changes the runtime from minutes to
    seconds.

    See poppler#1173.

 poppler/TextOutputDev.cc | 109
 ++++++++++++++++++++++++++---------------------
 1 file changed, 60 insertions(+), 49 deletions(-)

commit 835987362d9873cf98cc3f86959910ff2107a509
Author: Stefan Brüns <stefan.bruens@rwth-aachen.de>
Date:   Sun Mar 24 00:31:52 2024 +0100

    Reduce TextWord space and allocation overhead

    Currently, the word characters are allocated as a struct of arrays,
    e.g. text and charcode are allocated separately.

    This causes some space (6 pointers, 6 malloc chunk management
    words (size_t/flags), alignment, ...) and runtime overhead (6 allocs/
    frees per word).

    Changing this to an array of struct reduces this overhead. It
    also allows
    to be more conservative with allocations, as resizing is less
    costly, i.e.
    starting with a single character allocation instead of 16. It is
    also more
    efficient, as most accesses affect multiple or all attributes, i.e.
    values in the same or neighboring CPU cache lines.

    Using a std::vector instead of separate raw arrays also reduces code
    and manual data management.

    The "charPos end index" and trailing "edge" attributes are no
    longer stored as an additional entry entry in the array, but as
    dedicated
    data members, `charPosEnd` and `edgeEnd`.

    The memory saving is most notably for short words, but even for words
    with 16 characters there are small savings, and still less allocations
    (1 + 4 allocations instead of 6. Growing is fairly cheap, as the
    CharInfo
    struct is trivially copyable.)

    See poppler#1173.

 poppler/TextOutputDev.cc | 378
 ++++++++++++++++++++++-------------------------
 poppler/TextOutputDev.h  |  42 +++---
 2 files changed, 197 insertions(+), 223 deletions(-)

commit e803b3714a44001ac1e001d948ae505b24086b66
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Feb 8 00:36:51 2024 +0100

    Fix clang-tidy-17 "unnecessary temporary object created while calling
    emplace_back"

    Says modernize-use-emplace

    No need to pass the c, we will set it later so we can just use the
    default constructed CharCodeToUnicodeString

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

commit 9ace4f33e38fe24add87dc4e7c2a43e1441f2bec
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Tue Mar 12 21:37:46 2024 +0000

    Fix text search across lines between paragraphs

    This commit fixes the "across lines" text
    search feature of TextPage::findText() when
    the match happens from the last line of a
    paragraph to the first line of next paragraph.

    Includes tests for this bug.

    Fixes #1475
    Fixes https://gitlab.gnome.org/GNOME/evince/-/issues/2001

 poppler/TextOutputDev.cc   | 60
 +++++++++++++++++++++++++++-------------------
 qt5/tests/check_search.cpp |  7 ++++++
 qt6/tests/check_search.cpp |  7 ++++++
 3 files changed, 50 insertions(+), 24 deletions(-)

commit 7a435135a1bfb8c3f9f5984d88bbe5dd8977335a
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Sat Mar 23 12:40:07 2024 +0000

    Fix regression on issue #157

    Redo the fix for issue #157 which is about doing
    transparent selection for glyphless documents (eg.
    tesseract scanned documents) because it stopped
    working after commit 29f32a47

 poppler/TextOutputDev.cc | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

commit a10901554010bc5bbc0f24a8d14fdcdecc1b8367
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Mar 28 00:05:28 2024 +0100

    Update (C)

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

commit 10377f9df110aaeb8d68df4d01f049d9cc9f9c21
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Mar 27 00:43:01 2024 +0100

    qt6: Fix crash in SoundObject::data

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

commit 6a7f14bd867bc7215e1c94d27fb00c84c88a1db9
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Mar 5 00:41:43 2024 +0100

    Revert "CI: Switch debian to testing"

    This reverts commit 9c2cf5608a21b6fb9be4e0c7918d13cd2b652c23.

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

commit 99f5416d9bfb6a34bbc5cbcb368e258b98fd3f08
Author: Josep M. Ferrer <txemaq@gmail.com>
Date:   Fri Mar 1 15:09:08 2024 +0100

    pdfsig: Catalan translation

 utils/po/ca/CMakeLists.txt |  4 ++++
 utils/po/ca/pdfsig.po      | 26 ++++++++++++++++++++++++++
 2 files changed, 30 insertions(+)

commit 9c2cf5608a21b6fb9be4e0c7918d13cd2b652c23
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Mar 3 18:39:00 2024 +0100

    CI: Switch debian to testing

    unstable is broken at the moment

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

commit 481ee336d15bdf6b2b6084dddcd1617b032d2cd5
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Mar 3 12:16:11 2024 +0100

    poppler 24.03.0

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

commit 23a3e5144e9fe5329b99b26879856e9ca3db769d
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Mar 3 15:36:15 2024 +0100

    Fix srcdir=builddir build

    cmake will create folders which so we need to ignore those

 utils/po/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit 840fc7637d93d40e09c7792086c96ba94811fb1f
Author: Albert Astals Cid <aacid@kde.org>
Date:   Fri Mar 1 10:27:55 2024 +0100

    Fix translations on non glibc platforms

 utils/CMakeLists.txt | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

commit 0ad01ca51e6b6e061ba85db5b906dfc299dba8e1
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Feb 22 09:19:57 2024 +0100

    Update (C)

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

commit a9266633d203432234ab2dab621f61374eed2d66
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Wed Feb 21 19:56:46 2024 +0000

    Fix regression on encrypted files being repaired

    Some encrypted files which need repairing (see
    links below) failed to open due to a regression
    introduced in commit b3e86dbdba where an 'if
    condition' was added that's hit by encrypted files
    which need repairing.

    The removal of this 'if condition' does not affect
    the original buggy file that commit b3e86dbdba
    targeted[1].

    This commit also adds Qt5 and Qt6 tests for opening
    an encrypted pdf file affected by this issue.

    Fixes #1447
    Fixes https://gitlab.gnome.org/GNOME/evince/-/issues/1889

    Regression issue:
    https://bugs.freedesktop.org/show_bug.cgi?id=14303

    [1] which can be found in this duplicate:
    https://bugs.freedesktop.org/show_bug.cgi?id=14399

 poppler/XRef.cc              |  2 +-
 qt5/tests/check_password.cpp | 13 +++++++++++++
 qt6/tests/check_password.cpp | 10 ++++++++++
 3 files changed, 24 insertions(+), 1 deletion(-)

commit 87fab6144828cf52fbefb484ef7024c06ceaf6b1
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Feb 22 00:23:16 2024 +0100

    Update (C)

 poppler/Gfx.cc             | 2 +-
 poppler/SplashOutputDev.cc | 2 +-
 poppler/Stream.cc          | 2 +-
 splash/Splash.cc           | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

commit 3d8dac5ec9f1cdedada07c4c2fc02e43d5e14f9e
Author: Even Rouault <even.rouault@spatialys.com>
Date:   Tue Feb 20 20:44:04 2024 +0100

    Gfx::doImage(): avoid integer overflow if width * height > INT_MAX

    Related to https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66523

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

commit 8d66d756dad4fbde0cd1b8b0f1ce8b08caa7a19d
Author: Even Rouault <even.rouault@spatialys.com>
Date:   Tue Feb 20 20:43:11 2024 +0100

    SplashOutputDev::drawImageMask(): early break if getLine() fails

    Related to https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66523

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

commit 6a4d5323efd9651ab2ee5a0f921bdeb55fa61b0b
Author: Even Rouault <even.rouault@spatialys.com>
Date:   Tue Feb 20 20:42:28 2024 +0100

    ImageStream::getLine(): check that imgLine is not null

    Related to https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66523

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

commit 30acc0bbd2c773b2709aa9138e94729439fb3025
Author: Even Rouault <even.rouault@spatialys.com>
Date:   Tue Feb 20 20:41:51 2024 +0100

    Splash.cpp scaleXXXX() functions: use gmalloc[n]_checkoverflow to
    avoid abort() on large memory allocations

    Related to https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66523

 splash/Splash.cc | 151
 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 132 insertions(+), 19 deletions(-)

commit 1c7c2bae76d684bc4c8cd27f203b76009f49a848
Author: Even Rouault <even.rouault@spatialys.com>
Date:   Tue Feb 20 21:14:50 2024 +0100

    Fix read-heap-buffer-overflow in Splash::blitTransparent() in
    splashModeMono8 case

    Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=64471

    ```
    $ utils/pdftoppm
    clusterfuzz-testcase-minimized-gdal_fuzzer-6127122829410304
    [...]
    =================================================================
    ==1758602==ERROR: AddressSanitizer: heap-buffer-overflow on
    address 0x602000024cd5 at pc 0x7fd5850e977d bp 0x7ffe0e007430 sp
    0x7ffe0e007428
    READ of size 1 at 0x602000024cd5 thread T0
        #0 0x7fd5850e977c in Splash::blitTransparent(SplashBitmap*,
        int, int, int, int, int, int)
        /home/even/poppler/splash/Splash.cc:5778:24
        #1 0x7fd58505e19d in
        SplashOutputDev::beginTransparencyGroup(GfxState*,
        double const*, GfxColorSpace*, bool, bool, bool)
        /home/even/poppler/poppler/SplashOutputDev.cc:3998:17
        #2 0x7fd5850451c3 in
        SplashOutputDev::setSoftMaskFromImageMask(GfxState*,
        Object*, Stream*, int, int, bool, bool, double*)
        /home/even/poppler/poppler/SplashOutputDev.cc:2692:5
        #3 0x7fd584c3f6a7 in Gfx::doPatternImageMask(Object*, Stream*,
        int, int, bool, bool) /home/even/poppler/poppler/Gfx.cc:1964:10
        #4 0x7fd584c5cc26 in Gfx::doImage(Object*, Stream*, bool)
        /home/even/poppler/poppler/Gfx.cc:4304:17
        #5 0x7fd584c1827a in Gfx::opBeginImage(Object*, int)
        /home/even/poppler/poppler/Gfx.cc:4900:9
        #6 0x7fd584c32abe in Gfx::execOp(Object*, Object*, int)
        /home/even/poppler/poppler/Gfx.cc:811:5
        #7 0x7fd584c316ef in Gfx::go(bool)
        /home/even/poppler/poppler/Gfx.cc:686:13
        #8 0x7fd584c30f76 in Gfx::display(Object*, bool)
        /home/even/poppler/poppler/Gfx.cc:647:5
        #9 0x7fd58506713d in SplashOutputDev::tilingPatternFill(GfxState*,
        Gfx*, Catalog*, GfxTilingPattern*, double
        const*, int, int, int, int, double, double)
        /home/even/poppler/poppler/SplashOutputDev.cc:4424:10
        #10 0x7fd584c3b41b in Gfx::doTilingPatternFill(GfxTilingPattern*,
        bool, bool, bool) /home/even/poppler/poppler/Gfx.cc:2176:53
        #11 0x7fd584c36188 in Gfx::doPatternFill(bool)
        /home/even/poppler/poppler/Gfx.cc:1895:9
        #12 0x7fd584c16d93 in Gfx::opFillStroke(Object*, int)
        /home/even/poppler/poppler/Gfx.cc:1794:17
        #13 0x7fd584c32abe in Gfx::execOp(Object*, Object*, int)
        /home/even/poppler/poppler/Gfx.cc:811:5
        #14 0x7fd584c316ef in Gfx::go(bool)
        /home/even/poppler/poppler/Gfx.cc:686:13
        #15 0x7fd584c30f76 in Gfx::display(Object*, bool)
        /home/even/poppler/poppler/Gfx.cc:647:5
        #16 0x7fd584de61b9 in Page::displaySlice(OutputDev*, double,
        double, int, bool, bool, int, int, int, int, bool, bool
        (*)(void*), void*, bool (*)(Annot*, void*), void*, bool)
        /home/even/poppler/poppler/Page.cc:593:14
        #17 0x7fd584dfd5fc in PDFDoc::displayPageSlice(OutputDev*,
        int, double, double, int, bool, bool, bool, int, int, int, int,
        bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool)
        /home/even/poppler/poppler/PDFDoc.cc:633:24
        #18 0x4cc9c6 in savePageSlice(PDFDoc*, SplashOutputDev*,
        int, int, int, int, int, double, double, char*)
        /home/even/poppler/utils/pdftoppm.cc:293:10
        #19 0x4cb932 in main /home/even/poppler/utils/pdftoppm.cc:695:9
        #20 0x7fd5841ef082 in __libc_start_main
        /build/glibc-wuryBv/glibc-2.31/csu/../csu/libc-start.c:308:16
        #21 0x41d61d in _start
        (/home/even/poppler/build/utils/pdftoppm+0x41d61d)

    0x602000024cd5 is located 1 bytes to the right of 4-byte region
    [0x602000024cd0,0x602000024cd4)
    allocated by thread T0 here:
        #0 0x495d5d in malloc
        (/home/even/poppler/build/utils/pdftoppm+0x495d5d)
        #1 0x7fd5849f1d54 in gmalloc(unsigned long, bool)
        /home/even/poppler/goo/gmem.h:44:19
        #2 0x7fd5849f0ed0 in gmallocn(int, int, bool)
        /home/even/poppler/goo/gmem.h:121:12
        #3 0x7fd584c1384d in gmallocn_checkoverflow(int, int)
        /home/even/poppler/goo/gmem.h:126:12
        #4 0x7fd5850f7ec5 in SplashBitmap::SplashBitmap(int, int, int,
        SplashColorMode, bool, bool, std::vector<GfxSeparationColorSpace*,
        std::allocator<GfxSeparationColorSpace*> > const*)
        /home/even/poppler/splash/SplashBitmap.cc:111:28
        #5 0x7fd585066631 in SplashOutputDev::tilingPatternFill(GfxState*,
        Gfx*, Catalog*, GfxTilingPattern*, double
        const*, int, int, int, int, double, double)
        /home/even/poppler/poppler/SplashOutputDev.cc:4398:18
        #6 0x7fd584c3b41b in Gfx::doTilingPatternFill(GfxTilingPattern*,
        bool, bool, bool) /home/even/poppler/poppler/Gfx.cc:2176:53
        #7 0x7fd584c36188 in Gfx::doPatternFill(bool)
        /home/even/poppler/poppler/Gfx.cc:1895:9
        #8 0x7fd584c16d93 in Gfx::opFillStroke(Object*, int)
        /home/even/poppler/poppler/Gfx.cc:1794:17
        #9 0x7fd584c32abe in Gfx::execOp(Object*, Object*, int)
        /home/even/poppler/poppler/Gfx.cc:811:5
        #10 0x7fd584c316ef in Gfx::go(bool)
        /home/even/poppler/poppler/Gfx.cc:686:13
        #11 0x7fd584c30f76 in Gfx::display(Object*, bool)
        /home/even/poppler/poppler/Gfx.cc:647:5
        #12 0x7fd584de61b9 in Page::displaySlice(OutputDev*, double,
        double, int, bool, bool, int, int, int, int, bool, bool
        (*)(void*), void*, bool (*)(Annot*, void*), void*, bool)
        /home/even/poppler/poppler/Page.cc:593:14
        #13 0x7fd584dfd5fc in PDFDoc::displayPageSlice(OutputDev*,
        int, double, double, int, bool, bool, bool, int, int, int, int,
        bool (*)(void*), void*, bool (*)(Annot*, void*), void*, bool)
        /home/even/poppler/poppler/PDFDoc.cc:633:24
        #14 0x4cc9c6 in savePageSlice(PDFDoc*, SplashOutputDev*,
        int, int, int, int, int, double, double, char*)
        /home/even/poppler/utils/pdftoppm.cc:293:10
        #15 0x4cb932 in main /home/even/poppler/utils/pdftoppm.cc:695:9
        #16 0x7fd5841ef082 in __libc_start_main
        /build/glibc-wuryBv/glibc-2.31/csu/../csu/libc-start.c:308:16

    SUMMARY: AddressSanitizer: heap-buffer-overflow
    /home/even/poppler/splash/Splash.cc:5778:24 in
    Splash::blitTransparent(SplashBitmap*, int, int, int, int, int, int)
    ```

 splash/Splash.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

commit a938d58fb5b7ab43447f972ce238618fe2534ccd
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Feb 18 19:25:43 2024 +0100

    Update (C)

 poppler/Annot.cc    | 2 +-
 poppler/Annot.h     | 1 +
 poppler/DateInfo.cc | 1 +
 poppler/DateInfo.h  | 1 +
 poppler/Form.cc     | 2 +-
 utils/pdfsig.cc     | 2 +-
 6 files changed, 6 insertions(+), 3 deletions(-)

commit a7f1652ebdb78a4757565a91b62294ad7333ec75
Author: Erich E. Hoover <erich.e.hoover@gmail.com>
Date:   Thu Feb 8 11:07:24 2024 -0700

    pdfsig: Sign form signature fields with an appearance

 utils/CMakeLists.txt    |  7 +++++++
 utils/pdfsig.1          |  3 +++
 utils/pdfsig.cc         | 33 ++++++++++++++++++++++++++++++++-
 utils/po/CMakeLists.txt | 26 ++++++++++++++++++++++++++
 utils/po/pdfsig.pot     | 26 ++++++++++++++++++++++++++
 5 files changed, 94 insertions(+), 1 deletion(-)

commit 53b98e8d3c7783b4340e6006e7641fa6b0ffe3ec
Author: Erich E. Hoover <erich.e.hoover@gmail.com>
Date:   Mon Aug 15 10:04:17 2022 -0600

    DateInfo: Add timeToStringWithFormat for using a custom format string

 poppler/DateInfo.cc | 33 +++++++++++++++++++++++++--------
 poppler/DateInfo.h  |  6 ++++++
 2 files changed, 31 insertions(+), 8 deletions(-)

commit 7b189dc13c1e8de7df23326ce5b2ff93b76dc712
Author: Erich E. Hoover <erich.e.hoover@gmail.com>
Date:   Wed Oct 26 11:33:48 2022 -0600

    Form: Allow signDocumentWithAppearance to autocalculate the font size

 poppler/Form.cc | 34 +++++++++++++++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

commit 4a278246628850d5b7dc0ee3f6cbc9d38999e85a
Author: Erich E. Hoover <erich.e.hoover@gmail.com>
Date:   Wed Oct 26 11:34:21 2022 -0600

    Annot: Pull out the font size calculator into a separate routine

 poppler/Annot.cc | 54
 +++++++++++++++++++++++++++++++-----------------------
 poppler/Annot.h  |  2 ++
 2 files changed, 33 insertions(+), 23 deletions(-)

commit 4b109c2fdcd1d170d329178dd2f33ae55cc3fef0
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Feb 15 23:28:06 2024 +0100

    Update (C)

 utils/ImageOutputDev.cc | 1 +
 utils/ImageOutputDev.h  | 1 +
 utils/pdfimages.cc      | 1 +
 3 files changed, 3 insertions(+)

commit 90726f1e54c3be924f8a0419fc6fca4657127d89
Author: Sebastian J. Bronner <waschtl@sbronner.com>
Date:   Thu Feb 15 22:27:08 2024 +0000

    Enable pdfimages to print filenames to stdout.

    Add a command line option -print-filenames so that after writing each
    imaage to file, pdfimages will print the filename to stdout. This
    is in
    line with the --batch-print option of scanimage and the
    stream_filelist
    parameter of tesseract. It allows easy parallelization of different
    stages of an image processing pipeline.

 utils/ImageOutputDev.cc | 5 +++++
 utils/ImageOutputDev.h  | 4 ++++
 utils/pdfimages.1       | 3 +++
 utils/pdfimages.cc      | 3 +++
 4 files changed, 15 insertions(+)

commit 2934e3127adaff049224c741ddaeef8de832c6ab
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Feb 13 22:59:19 2024 +0100

    Update (C)

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

commit a4da948c19990e299dd336a30d32760ce90b0136
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Tue Feb 13 10:28:22 2024 +0000

    Gfx::doImage: skip drawing image when it has singular matrix

    otherwise it will result in broken output in Cairo backend.

    Splash backend already works fine for this case because
    it checks for singular matrix in Splash::drawImage().

    This commit adds that check early in Gfx::doImage()
    which fixes the Cairo backend and for Splash backend
    means a perf improvement by avoiding lot of color
    computation and image preparation done in
    SplashOutputDev::draw{Image,ImageMask,MaskedImage,softMaskedImage}
    prior to calling Splash::drawImage which is the one
    that checks singular matrix and skips.

    Note: singular matrix case is not mentioned in PDF spec
    but Xpdf and other pdf readers de-facto do as in here
    i.e. skip drawing an image when it has a singular (non
    invertible) matrix.

    Fixes issue #1114

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

commit 0672a083a5f8e0c5ca53f7cf0dd967ce78b26fd1
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Feb 8 19:00:01 2024 +0100

    Update (C)

 poppler/FileSpec.cc | 1 +
 poppler/FileSpec.h  | 1 +
 utils/pdfdetach.cc  | 3 ++-
 3 files changed, 4 insertions(+), 1 deletion(-)

commit d169ac132d36ba1459000a27cada084e1633859a
Author: Albert Astals Cid <aacid@kde.org>
Date:   Sun Feb 4 10:31:43 2024 +0100

    Use std::filesystem

 utils/pdfdetach.cc | 40 ++++++++++++++++++++++++----------------
 1 file changed, 24 insertions(+), 16 deletions(-)

commit d8e7a8a9dd4ddd642c35f5fd1538396be2a68aa9
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Fri Jun 30 15:25:14 2023 +0200

    Fix directory traversal in pdfdetach

    A carefully crafted pdf file could lead to writing files in wrong
    places
    of the file system by using pdfdetach.

    Thanks to jwilk for spotting the issue.

    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1026908

 poppler/FileSpec.cc |  4 ++--
 poppler/FileSpec.h  |  2 +-
 utils/pdfdetach.cc  | 66
 ++++++++++++++++++++++++++---------------------------
 3 files changed, 35 insertions(+), 37 deletions(-)

commit 6e3824d45d42cb806a28a2df84e4ab6bb3587083
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Feb 8 00:57:02 2024 +0100

    Use an enum for Function getType

 poppler/Function.cc    |  4 ++--
 poppler/Function.h     | 29 ++++++++++++++++-------------
 poppler/PSOutputDev.cc | 12 ++++++------
 3 files changed, 24 insertions(+), 21 deletions(-)

commit 925b104c33f5a1a546c72794d30a6deb918998f7
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Fri Feb 2 11:18:42 2024 +0100

    Use more vectors and less owning pointers + length

    Also remove a couple of unreferenced functions.

 poppler/CharCodeToUnicode.cc | 175
 ++++++++-----------------------------------
 poppler/CharCodeToUnicode.h  |  16 +---
 2 files changed, 35 insertions(+), 156 deletions(-)

commit d44142d3bb95997af339ebe7d30d2180fe74d6f4
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Mon Feb 5 10:43:01 2024 +0100

    Microoptimization in parsehex

    parsehex is quite a hot codepath when loading documents.

    Various experiments shown that this let the compiler generate slightly
    faster code.

 poppler/CharCodeToUnicode.cc | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

commit 7e66b9afe16e7eb559655d7c400cf4c1e6e04d26
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Fri Feb 2 10:36:44 2024 +0100

    inline UnicodeIsValid

    While profiling document loading, a lot was hitting this function; try
    let the compiler be smarter.

 poppler/UTF.cc | 5 -----
 poppler/UTF.h  | 5 ++++-
 2 files changed, 4 insertions(+), 6 deletions(-)

commit 5ad744922aeed83ecf2bbdb83c783bbfc23b4192
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Feb 1 23:44:27 2024 +0100

    poppler 24.02.0

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

commit c80ae496d04ebcc94d480e5ba9a1d35a32f03719
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Feb 1 20:20:52 2024 +0100

    Update (C)

 cpp/poppler-toc.cpp          | 1 +
 glib/poppler-document.cc     | 1 +
 poppler/CharCodeToUnicode.cc | 1 +
 poppler/CharCodeToUnicode.h  | 1 +
 poppler/DateInfo.cc          | 1 +
 poppler/JSInfo.cc            | 1 +
 poppler/Outline.cc           | 1 +
 poppler/Outline.h            | 1 +
 poppler/TextOutputDev.cc     | 1 +
 poppler/UTF.cc               | 2 +-
 poppler/UTF.h                | 2 +-
 qt5/src/poppler-outline.cc   | 1 +
 qt5/src/poppler-private.cc   | 1 +
 qt5/src/poppler-private.h    | 1 +
 qt6/src/poppler-outline.cc   | 1 +
 qt6/src/poppler-private.cc   | 1 +
 qt6/src/poppler-private.h    | 1 +
 utils/HtmlFonts.cc           | 1 +
 utils/HtmlFonts.h            | 1 +
 utils/HtmlOutputDev.cc       | 1 +
 utils/HtmlOutputDev.h        | 1 +
 utils/pdfinfo.cc             | 1 +
 utils/pdfsig.cc              | 2 +-
 utils/pdftohtml.cc           | 1 +
 24 files changed, 24 insertions(+), 3 deletions(-)

commit fc1c711cb5f769546c6b31cc688bf0ee7f0c1dbc
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Thu Feb 1 19:11:03 2024 +0000

    More unicode vectors; fewer raw pointers

 cpp/poppler-toc.cpp                  |   5 +-
 glib/poppler-document.cc             |   3 +-
 poppler/CharCodeToUnicode.cc         | 113
 ++++++++++++-----------------------
 poppler/CharCodeToUnicode.h          |  12 ++--
 poppler/DateInfo.cc                  |  10 ++--
 poppler/JSInfo.cc                    |   9 +--
 poppler/Outline.cc                   |  12 +---
 poppler/Outline.h                    |   7 +--
 poppler/TextOutputDev.cc             |   8 +--
 poppler/UTF.cc                       |  78 +++++++++++-------------
 poppler/UTF.h                        |  11 ++--
 qt5/src/poppler-outline.cc           |   2 +-
 qt5/src/poppler-private.cc           |  13 ++--
 qt5/src/poppler-private.h            |   1 +
 qt5/tests/check_internal_outline.cpp |   6 +-
 qt5/tests/check_utf8document.cpp     |   3 +-
 qt5/tests/check_utf_conversion.cpp   |  24 ++++----
 qt6/src/poppler-outline.cc           |   2 +-
 qt6/src/poppler-private.cc           |   5 ++
 qt6/src/poppler-private.h            |   1 +
 qt6/tests/check_internal_outline.cpp |   6 +-
 qt6/tests/check_utf8document.cpp     |   3 +-
 qt6/tests/check_utf_conversion.cpp   |  24 ++++----
 utils/HtmlFonts.cc                   |   4 +-
 utils/HtmlFonts.h                    |   2 +-
 utils/HtmlOutputDev.cc               |  38 ++++++------
 utils/HtmlOutputDev.h                |   2 +-
 utils/pdfinfo.cc                     |   8 +--
 utils/pdfsig.cc                      |   8 +--
 utils/pdftohtml.cc                   |  25 +++-----
 30 files changed, 187 insertions(+), 258 deletions(-)

commit e56d7d7d325928e4db43043eec9c290ef0e690e3
Author: Albert Astals Cid <aacid@kde.org>
Date:   Wed Jan 31 23:46:47 2024 +0100

    Update (C)

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

commit c1443b5fdb62c5d02e448933aaeac7a080831cde
Author: Keyu Tao <me@taoky.moe>
Date:   Wed Jan 3 12:47:17 2024 +0800

    Use FcPatternGetCharSet to fast skip fonts in
    findSystemFontFileForUChar

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

commit af05d3064f459550a361b3f30e3efb0598546948
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Jan 25 23:51:05 2024 +0100

    Fix setting annotpolygon interior color to empty

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

commit b0d437040cbfa65604d98a30bb2158edf2a2c053
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Jan 25 23:49:53 2024 +0100

    Fix saving annotgeometry interior color when it's empty

    KDE bug #479732

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

commit 362e45c7865835a7b249dee4e63b17110f1fb6bb
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Thu Jan 25 16:58:17 2024 +0000

    Remove unneeded comment

 poppler/Stream.h | 1 -
 1 file changed, 1 deletion(-)

commit 2b2d5bc0a7351895c662958105dac11adfecf794
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Jan 25 23:49:11 2024 +0100

    Update (C)

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

commit 42004cb3278f75403c12bc38bae147937c16ea90
Author: Nelson Benítez León <nbenitezl@gmail.com>
Date:   Thu Jan 25 16:23:23 2024 +0000

    Fix small oversight from b8de1a191

    There was one 'bytecounter increase' case
    that was not imported from the Xpdf code.

    That caused some JPEG streams fail to
    render when hitting that codepath, like
    the file 'p1.blank_with_poppler.pdf'
    posted on issue #1319

    Fixes #1319

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

commit a93aa6acf6efe14a5f0494552b0e56db5085df35
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Jan 25 00:12:23 2024 +0100

    Add a few const and reduce variable scopes

 utils/ImageOutputDev.h |  4 ++--
 utils/pdfimages.cc     | 14 +++++---------
 2 files changed, 7 insertions(+), 11 deletions(-)

commit 7c9dfc10fd7b3ee3bdd1a71ab932ffd93dfebeba
Author: Albert Astals Cid <aacid@kde.org>
Date:   Thu Jan 25 00:13:22 2024 +0100

    Update (C)

 poppler/XRef.h          | 2 +-
 utils/ImageOutputDev.cc | 1 +
 utils/ImageOutputDev.h  | 1 +
 utils/pdfimages.cc      | 1 +
 4 files changed, 4 insertions(+), 1 deletion(-)

commit b20632277c6352306651f5625ec43172c470a55c
Author: Fernando Herrera <fherrera@onirica.com>
Date:   Wed Jan 24 22:33:02 2024 +0000

    pdfimages: return exit code 2 when error opening output files

    Issue #1460

 utils/ImageOutputDev.cc | 8 +++++++-
 utils/ImageOutputDev.h  | 8 ++++++--
 utils/pdfimages.cc      | 5 +++--
 3 files changed, 16 insertions(+), 5 deletions(-)

commit 25ffb7b7ac82d8d2b394514149014142a5160096
Author: Sune Vuorela <sune@vuorela.dk>
Date:   Wed Jan 24 10:58:27 2024 +0100

    Make stream compression non-optional

    Requires the users to think if their stream is compressed or not
    and if it is a good idea to compress or not, rather than default to
    'not
    compressed'

 poppler/XRef.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

commit c7ad20c2eac29d01bdeff12ac0c936ed882ed826
Author: Albert Astals Cid <aacid@kde.org>
Date:   Tue Jan 23 23:47:56 2024 +0100
