git: fe5bbf8ea50b - main - graphics/kf6-kimageformats: Backport upstream fix for KDE bug 523105

From: Max Brazhnikov <makc_at_FreeBSD.org>
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) {