git: 0c342eb2eb39 - 2026Q3 - graphics/kf6-kimageformats: Backport upstream fix for KDE bug 523105

From: Max Brazhnikov <makc_at_FreeBSD.org>
Date: Mon, 20 Jul 2026 20:37:34 UTC
The branch 2026Q3 has been updated by makc:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0c342eb2eb390e1fe46072be7dfa20fc78b80d44

commit 0c342eb2eb390e1fe46072be7dfa20fc78b80d44
Author:     Max Brazhnikov <makc@FreeBSD.org>
AuthorDate: 2026-07-20 20:37:26 +0000
Commit:     Max Brazhnikov <makc@FreeBSD.org>
CommitDate: 2026-07-20 20:37:26 +0000

    graphics/kf6-kimageformats: Backport upstream fix for KDE bug 523105
    
    (cherry picked from commit fe5bbf8ea50b519242a05eef67ffbb9a4221a7ce)
---
 graphics/kf6-kimageformats/Makefile                |  1 +
 .../files/patch-src_imageformats_heif.cpp          | 26 ++++++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/graphics/kf6-kimageformats/Makefile b/graphics/kf6-kimageformats/Makefile
index 48681225e265..f6bba11903a3 100644
--- a/graphics/kf6-kimageformats/Makefile
+++ b/graphics/kf6-kimageformats/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	kimageformats
 DISTVERSION=	${KDE_FRAMEWORKS_VERSION}
+PORTREVISION=	1
 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) {