Compare commits

..

2 Commits

Author SHA1 Message Date
Nicolas Fella
4e28133181 Bump patch version for release 2026-07-20 20:53:16 +02:00
Kyle Alexander Buan
ac374da215 HEIF: keep reader callback table alive
libheif retains the heif_reader pointer after
heif_context_read_from_reader returns. The callback table was scoped
to the non-sequential branch and could be destroyed before
tiled image decoding used it from worker threads.

Give the callback table static storage duration.

BUG: 523105
(cherry picked from commit ad0fb9dde4)
2026-07-20 20:52:13 +02:00
3 changed files with 3 additions and 3 deletions

View File

@@ -9,4 +9,3 @@ Options:
require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows']
cmake-options: "-DKIMAGEFORMATS_WITH_KNOWN_CRASHES_JXR=ON -DKIMAGEFORMATS_HEIF=ON -DKIMAGEFORMATS_HEIF_TEST:STRING=OFF -DKIMAGEFORMATS_HEJ2_TEST:STRING=OFF -DKIMAGEFORMATS_AVCI_TEST:STRING=OFF"
per-test-timeout: 90
enable-lsan: True

View File

@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.29)
set(KF_VERSION "6.29.0") # handled by release scripts
set(KF_VERSION "6.28.1") # handled by release scripts
set(KF_DEP_VERSION "6.28.0") # handled by release scripts
project(KImageFormats VERSION ${KF_VERSION})

View File

@@ -711,7 +711,8 @@ bool HEIFHandler::ensureDecoder()
buffer = deviceRead(dev, kMaxQVectorSize);
err = heif_context_read_from_memory(ctx, static_cast<const void *>(buffer.constData()), buffer.size(), nullptr);
} else {
heif_reader reader = create_heif_reader_for_qiodevice();
// Must not be destroyed until decoding ends
static const heif_reader reader = create_heif_reader_for_qiodevice();
err = heif_context_read_from_reader(ctx, &reader, dev, nullptr);
}
if (err.code) {