gtk3: fix g_content_type_is_a() errors

This commit is contained in:
Christoph Reiter
2019-06-30 14:11:39 +02:00
parent 753f1581e0
commit 4bace05936
2 changed files with 41 additions and 3 deletions

View File

@@ -0,0 +1,35 @@
From 8a53ed9e55dac8f559fa47f999e527640889659c Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Sun, 30 Jun 2019 13:59:13 +0200
Subject: [PATCH] gtkrecentfilter: handle g_content_type_from_mime_type()
returning NULL
Otherwise we get errors on g_content_type_is_a(). This happens mostly on Windows
because it only knows a limited set of mime types and tries to convert
them to file extensions without any fallback.
---
gtk/gtkrecentfilter.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/gtk/gtkrecentfilter.c b/gtk/gtkrecentfilter.c
index 4062db59d9..70c021abda 100644
--- a/gtk/gtkrecentfilter.c
+++ b/gtk/gtkrecentfilter.c
@@ -746,11 +746,12 @@ gtk_recent_filter_filter (GtkRecentFilter *filter,
if (filter_info->mime_type != NULL)
{
gchar *filter_content_type, *rule_content_type;
- gboolean match;
+ gboolean match = FALSE;
filter_content_type = g_content_type_from_mime_type (filter_info->mime_type);
rule_content_type = g_content_type_from_mime_type (rule->u.mime_type);
- match = g_content_type_is_a (filter_content_type, rule_content_type);
+ if (filter_content_type != NULL && rule_content_type != NULL)
+ match = g_content_type_is_a (filter_content_type, rule_content_type);
g_free (filter_content_type);
g_free (rule_content_type);
--
2.22.0

View File

@@ -4,7 +4,7 @@ _realname=gtk3
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=3.24.9
pkgrel=3
pkgrel=4
pkgdesc="GObject-based multi-platform GUI toolkit (v3) (mingw-w64)"
arch=('any')
url="https://www.gtk.org/"
@@ -30,10 +30,12 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
options=('strip' '!debug' 'staticlibs')
source=("https://download.gnome.org/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz"
"0001-gtkwindow-Don-t-force-enable-CSD-under-Windows.patch"
"0002-geninclude-missing-encoding.patch")
"0002-geninclude-missing-encoding.patch"
"0003-gtkrecentfilter-handle-g_content_type_from_mime_type.patch")
sha256sums=('577eb0270d9adf2eb2aa4b03f9c7873fadb20cf265194d0139570f738493e635'
'f6f8019e21b2932ee2cfb3b261d57b79f6492d4f0a61f9fbf5b8edd193758d9a'
'af90a58f6e4d281ab6130e6d7e4c5dd43fb6c391d43b210e9b0a3b734ad64746')
'af90a58f6e4d281ab6130e6d7e4c5dd43fb6c391d43b210e9b0a3b734ad64746'
'401b6a1ee14b1168e5c711b92068c8bc4beb6da392f53d95cd98721434335a53')
prepare() {
cd "${srcdir}/gtk+-${pkgver}"
@@ -42,6 +44,7 @@ prepare() {
patch -p1 -i "${srcdir}"/0001-gtkwindow-Don-t-force-enable-CSD-under-Windows.patch
patch -p1 -i "${srcdir}"/0002-geninclude-missing-encoding.patch
patch -p1 -i "${srcdir}"/0003-gtkrecentfilter-handle-g_content_type_from_mime_type.patch
}
build() {