git: fe5bbf8ea50b - main - graphics/kf6-kimageformats: Backport upstream fix for KDE bug 523105
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 20 Jul 2026 20:35:33 UTC
The branch main has been updated by makc:
URL: https://cgit.FreeBSD.org/ports/commit/?id=fe5bbf8ea50b519242a05eef67ffbb9a4221a7ce
commit fe5bbf8ea50b519242a05eef67ffbb9a4221a7ce
Author: Max Brazhnikov <makc@FreeBSD.org>
AuthorDate: 2026-07-20 20:35:26 +0000
Commit: Max Brazhnikov <makc@FreeBSD.org>
CommitDate: 2026-07-20 20:35:26 +0000
graphics/kf6-kimageformats: Backport upstream fix for KDE bug 523105
---
graphics/kf6-kimageformats/Makefile | 2 +-
.../files/patch-src_imageformats_heif.cpp | 26 ++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/graphics/kf6-kimageformats/Makefile b/graphics/kf6-kimageformats/Makefile
index f6bba11903a3..958112c9c733 100644
--- a/graphics/kf6-kimageformats/Makefile
+++ b/graphics/kf6-kimageformats/Makefile
@@ -1,6 +1,6 @@
PORTNAME= kimageformats
DISTVERSION= ${KDE_FRAMEWORKS_VERSION}
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= graphics kde kde-frameworks
MAINTAINER= kde@FreeBSD.org
diff --git a/graphics/kf6-kimageformats/files/patch-src_imageformats_heif.cpp b/graphics/kf6-kimageformats/files/patch-src_imageformats_heif.cpp
new file mode 100644
index 000000000000..59d13f8e3be8
--- /dev/null
+++ b/graphics/kf6-kimageformats/files/patch-src_imageformats_heif.cpp
@@ -0,0 +1,26 @@
+From ac374da215eb30d67355be00c89a73c06fea8ae8 Mon Sep 17 00:00:00 2001
+From: Kyle Alexander Buan <me@kylxbn.com>
+Date: Thu, 16 Jul 2026 15:33:49 +0800
+Subject: [PATCH] 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
+
+--- src/imageformats/heif.cpp.orig 2026-07-03 10:55:53 UTC
++++ src/imageformats/heif.cpp
+@@ -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) {